Docs Menu
Docs Home
/ / /
C#/.NET ドライバー
/ / / /

1 つのドキュメントのフィールドの更新

項目一覧

  • Overview
  • サンプル データ
  • 値の増加
  • 値を乗算する
  • フィールド名の変更
  • 値の設定
  • 比較による設定
  • 挿入時に設定
  • 現在の日付を設定
  • フィールドの設定解除
  • API ドキュメント

このページでは、 MongoDB .NET/ C#ドライバーを使用して 1 つのMongoDBドキュメントのフィールドを更新する方法を学習できます。 このページでは、フィールドで実行するアップデート操作を指定する UpdateDefinition<TDocument> オブジェクトを作成する方法について説明します。 これらのオブジェクトを、 Update One ページで説明されているアップデート メソッドに渡すことができます。

.NET/ C#ドライバーは、 MongoDB Serverマニュアル に記載されているフィールド更新演算子をサポートしています。更新操作 を指定するには、Builders.Updateプロパティから対応するメソッドを呼び出します。 次のセクションでは、これらの方法について詳しく説明します。

注意

メソッドのオーバーロード

このページのメソッドの多くには、複数のオーバーロードがあります。 このガイドの例では、各メソッドの 1 つの定義のみを示します。 利用可能なオーバーロードの詳細については、 APIドキュメント を参照してください。

このガイドの例では、 sample_restaurantsデータベースのrestaurantsコレクションを使用します。 このコレクションのドキュメントでは、次のRestaurantAddressGradeEntryクラスをモデルとして使用します。

public class Restaurant
{
public ObjectId Id { get; set; }
public string Name { get; set; }
[BsonElement("restaurant_id")]
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; }
[BsonElement("coord")]
public double[] Coordinates { get; set; }
public string Street { get; set; }
[BsonElement("zipcode")]
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
説明

field

インクリメントするフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドを増加させる量。

データ型: TField

フィールドの値に特定の量を乗算するには、Builders.Update.Mul() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドに乗じる量。

データ型: TField

フィールド の名前を変更するには、Builders.Update.Rename() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

名前を変更するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

newName

フィールドの新しい名前。

データ型: string

フィールドの値を特定の値に設定するには、Builders.Update.Set() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドに設定する値。

データ型: TField

フィールドの値を指定した値に更新するには、指定された値がフィールドの現在の値より大きい場合にのみ、 Builders.Update.Max()メソッドを呼び出します。このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドに設定する値。

データ型: TField

フィールドの値を指定した値に更新するには、指定された値がフィールドの現在の値より小さい場合にのみ、Builders.Update.Min() メソッドを呼び出します。このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドに設定する値。

データ型: TField

ドキュメントが 同じ操作でアップサートされた場合にのみフィールドの値を設定するには、Builders.Update.SetOnInsert() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

value

フィールドに設定する値。

データ型: TField

フィールドの値を現在の日付と時刻に設定するには、Builders.Update.CurrentDate() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

更新するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

type

UpdateDefinitionCurrentDateType列挙で定義される日付と時刻の形式。 デフォルト値は null です。

データ型: UpdateDefinitionCurrentDateType?

ドキュメントからフィールドを削除するには、Builders.Update.Unset() メソッドを呼び出します。 このメソッドは次のパラメーターを受け入れます:

Parameter
説明

field

削除するフィールドを指定する式。

データ型: Expression<Func<TDocument, TField>>

このガイドで説明されているメソッドの詳細については、次のAPIドキュメントを参照してください。

戻る

更新 1