1 つのドキュメントのフィールドの更新
Overview
このページでは、 MongoDB .NET/ C#ドライバーを使用して 1 つのMongoDBドキュメントのフィールドを更新する方法を学習できます。 このページでは、フィールドで実行するアップデート操作を指定する UpdateDefinition<TDocument>
オブジェクトを作成する方法について説明します。 これらのオブジェクトを、 Update One ページで説明されているアップデート メソッドに渡すことができます。
.NET/ C#ドライバーは、 MongoDB Serverマニュアル に記載されているフィールド更新演算子をサポートしています。更新操作 を指定するには、Builders.Update
プロパティから対応するメソッドを呼び出します。 次のセクションでは、これらの方法について詳しく説明します。
注意
メソッドのオーバーロード
このページのメソッドの多くには、複数のオーバーロードがあります。 このガイドの例では、各メソッドの 1 つの定義のみを示します。 利用可能なオーバーロードの詳細については、 APIドキュメント を参照してください。
サンプル データ
このガイドの例では、 sample_restaurants
データベースのrestaurants
コレクションを使用します。 このコレクションのドキュメントでは、次のRestaurant
、 Address
、 GradeEntry
クラスをモデルとして使用します。
public class Restaurant { public ObjectId Id { get; set; } public string Name { get; set; } [ ] public string RestaurantId { get; set; } public string Cuisine { get; set; } public Address Address { get; set; } public string Borough { get; set; } public List<GradeEntry> Grades { get; set; } }
public class Address { public string Building { get; set; } [ ] public double[] Coordinates { get; set; } public string Street { get; set; } [ ] public string ZipCode { get; set; } }
public class GradeEntry { public DateTime Date { get; set; } public string Grade { get; set; } public float? Score { get; set; } }
注意
restaurants
コレクションのドキュメントは、スニペット ケースの命名規則を使用します。このガイドの例では、ConventionPack
を使用してコレクション内のフィールドをパスカル ケースに逆シリアル化し、Restaurant
クラスのプロパティにマップします。
カスタム直列化について詳しくは、「カスタム直列化」を参照してください。
このコレクションは、Atlas が提供するサンプル データセットから構成されています。 MongoDB クラスターを無料で作成して、このサンプル データをロードする方法については、クイック スタートを参照してください。
値の増加
フィールドの値を特定の量ずつ増加させるには、Builders.Update.Inc()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| インクリメントするフィールドを指定する式。 データ型: |
| フィールドを増加させる量。 データ型: |
値を乗算する
フィールドの値に特定の量を乗算するには、Builders.Update.Mul()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
| フィールドに乗じる量。 データ型: |
フィールド名の変更
フィールド の名前を変更するには、Builders.Update.Rename()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 名前を変更するフィールドを指定する式。 データ型: |
| フィールドの新しい名前。 データ型: |
値の設定
フィールドの値を特定の値に設定するには、Builders.Update.Set()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
| フィールドに設定する値。 データ型: |
比較による設定
フィールドの値を指定した値に更新するには、指定された値がフィールドの現在の値より大きい場合にのみ、 Builders.Update.Max()
メソッドを呼び出します。このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
| フィールドに設定する値。 データ型: |
フィールドの値を指定した値に更新するには、指定された値がフィールドの現在の値より小さい場合にのみ、Builders.Update.Min()
メソッドを呼び出します。このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
| フィールドに設定する値。 データ型: |
挿入時に設定
ドキュメントが 同じ操作でアップサートされた場合にのみフィールドの値を設定するには、Builders.Update.SetOnInsert()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
| フィールドに設定する値。 データ型: |
現在の日付を設定
フィールドの値を現在の日付と時刻に設定するには、Builders.Update.CurrentDate()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 更新するフィールドを指定する式。 データ型: |
|
|
フィールドの設定解除
ドキュメントからフィールドを削除するには、Builders.Update.Unset()
メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:
Parameter | 説明 |
---|---|
| 削除するフィールドを指定する式。 データ型: |
API ドキュメント
このガイドで説明されているメソッドの詳細については、次のAPIドキュメントを参照してください。