Docs Menu
Docs Home
/ / /
C#/.NET
/ / /

多数更新

項目一覧

  • Overview
  • サンプル データ
  • メソッドとパラメーター
  • 複数の値の更新
  • 更新の定義を組み合わせた
  • 更新パイプライン
  • 設定オプション
  • 戻り値
  • 詳細情報
  • API ドキュメント

  • UpdateMany(): 複数のドキュメントの 1 つ以上のフィールドを更新します。

  • UpdateManyAsync(): UpdateMany() の非同期バージョン。

次のセクションでは、これらの方法について詳しく説明します。

注意

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

このページのメソッドの多くには、複数のオーバーロードがあります。 The examples in this ガイド show only one definition of each method. For more information about the available overloads, see the API documentation.

このガイドの例では、 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 クラスターを無料で作成して、このサンプル データをロードする方法については、クイック スタートを参照してください。

UpdateMany() メソッドと UpdateManyAsync() メソッドは次のパラメータを受け入れます。

Parameter
説明

filter

データ型: FilterDefinition

update

options

任意。 An インスタンス of theUpdateOptions クラス that specifies the configuration for the update 操作. The デフォルト value is.利用可能なオプションのリストについては、null 「構成オプション」 を参照してください。

データ型: UpdateOptions

cancellationToken

任意。操作をキャンセルするために使用できるトークン。

データ型CancellationToken

The UpdateMany() and UpdateManyAsync() methods each accept only one UpdateDefinition オブジェクト.次のセクションでは、1 回のメソッド呼び出しで複数の値をアップデートする方法について説明します。

Builders.Update.Combine() メソッドを使用すると、複数の UpdateDefinition オブジェクトを組み合わせることができます。このメソッドは次のパラメーターを受け入れます:

Parameter
説明

updates

組み合わせる更新定義の配列。

データ型: UpdateDefinition<TDocument>[]

var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var combinedUpdate = Builders<Restaurant>.Update.Combine(
Builders<Restaurant>.Update.Set("cuisine", "French"),
Builders<Restaurant>.Update.Unset("borough")
);
_restaurantsCollection.UpdateMany(filter, combinedUpdate);
var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var combinedUpdate = Builders<Restaurant>.Update.Combine(
Builders<Restaurant>.Update.Set("cuisine", "French"),
Builders<Restaurant>.Update.Unset("borough")
);
await _restaurantsCollection.UpdateManyAsync(filter, combinedUpdate);

To create an update パイプライン, call the Builders.Update.Pipeline() method.このメソッドは次のパラメーターを受け入れます:

Parameter
説明

pipeline

データ型: PipelineDefinition<TDocument, TDocument>

var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var updatePipeline = Builders<Restaurant>.Update.Pipeline(
PipelineDefinition<Restaurant, Restaurant>.Create(
new BsonDocument("$set", new BsonDocument("cuisine", "French")),
new BsonDocument("$unset", "borough")
)
);
_restaurantsCollection.UpdateMany(filter, updatePipeline);
var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var updatePipeline = Builders<Restaurant>.Update.Pipeline(
PipelineDefinition<Restaurant, Restaurant>.Create(
new BsonDocument("$set", new BsonDocument("cuisine", "French")),
new BsonDocument("$unset", "borough")
)
);
await _restaurantsCollection.UpdateManyAsync(filter, updatePipeline);

注意

サポートされていない操作

プロパティ
説明

ArrayFilters

BypassDocumentValidation

データ型: bool?

Collation

データ型: 照合

Comment

データ型: BsonValue

Hint

データ型: BsonValue

IsUpsert

データ型: bool

Let

データ型: BsonDocument

プロパティ
説明

IsAcknowledged

アップデート操作が MongoDB によって確認されたかどうかを示します。

データ型: bool

IsModifiedCountAvailable

UpdateResult で更新レコードの数を読み取れるかどうかを示します。

データ型: bool

MatchedCount

データ型: long

ModifiedCount

データ型: long

UpsertedId

ドライバーがアップサートを実行した場合、データベースでアップサートされたドキュメントのID。

データ型: BsonValue

このページには、 UpdateManyAsync()メソッドを使用してデータを変更する方法を示す短いインタラクティブ ラボが含まれています。 MongoDB やコード エディターをインストールしなくても、ブラウザ ウィンドウでこのラボを直接完了できます。

ラボを開始するには、ページ上部の [ Open Interactive Tutorialボタンをクリックします。 ラボを全画面形式に展開するには、ラボ ペインの右上隅にある全画面ボタン( )をクリックします。

更新操作の実行可能な例については、「 多数のドキュメントの更新 」ページを参照してください。

クエリフィルターの作成の詳細については、「クエリの指定」ガイドを参照してください。

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

戻る

配列