.NET を使って Azure Cosmos DB for MongoDB のドキュメントを管理する
適用対象: MongoDB
ドキュメントを挿入、更新、削除する機能を使って、MongoDB ドキュメントを管理します。
注意
コード スニペットの例は、.NET プロジェクトとしてGitHub 上で使用できます。
MongoDB 用 API リファレンス ドキュメント | MongoDB パッケージ (NuGet)
ドキュメントの挿入
JSON スキーマで定義された 1 つまたは複数のドキュメントをコレクションに挿入します。
// insert one document
var product = new BsonDocument
{
{ "name", "Sand Surfboard" },
{ "category", "gear-surf-surfboards" },
{ "count", 1 }
};
collection.InsertOne(product);
// insert many documents
var products = new List<BsonDocument>()
{
new BsonDocument
{
{ "name", "Lake Surfboard" },
{ "category", "gear-surf-surfboards" },
{ "count", 1 }
},
new BsonDocument
{
{ "name", "Ocean Surfboard" },
{ "category", "gear-surf-surfboards" },
{ "count", 5 }
}
};
collection.InsertMany(products);
ドキュメントの更新
ドキュメントを更新するには、ドキュメントの検索に使用するクエリ フィルターと、更新する必要があるドキュメントの一連のプロパティを指定します。
// update one item
var filter = Builders<BsonDocument>.Filter.Eq("name", "Sand Surfboard");
var update = Builders<BsonDocument>.Update.Set("name", "Sand Surfboard Pro");
collection.UpdateOne(filter, update);
//update many items
var filterMany = Builders<BsonDocument>.Filter.Eq("category", "gear-surf-surfboards");
var updateMany = Builders<BsonDocument>.Update.Set("category", "gear-surfboards");
collection.UpdateMany(filterMany, updateMany);
コレクションの一括更新
bulkWrite 操作では、さまざまな種類の操作を一度に実行できます。 Azure Cosmos DB の一括書き込みを最適化する方法を確認してください。
次のような一括操作が可能です。
MongoClient.Database.Collection.BulkWrite
insertOne
updateOne
updateMany
deleteOne
deleteMany
// perform multiple different types of operations
var models = new WriteModel<BsonDocument>[]
{
new InsertOneModel<BsonDocument>(new BsonDocument(new BsonDocument
{
{ "name", "Wave Paddleboard" },
{ "category", "gear-surfboards" },
{ "count", 1 }
})),
new UpdateOneModel<BsonDocument>(
Builders<BsonDocument>.Filter.Eq("name", "Sand Surfboard Pro"),
Builders<BsonDocument>.Update.Set("name", "Sand Surfboard Pro X")),
new DeleteOneModel<BsonDocument>(new BsonDocument("name", "Ocean Surfboard"))
};
collection.BulkWrite(models);
ドキュメントの削除
ドキュメントを削除するには、クエリを使ってドキュメントの検索方法を定義します。
var deleteFilter = Builders<BsonDocument>.Filter.Eq("name", "Sand Surfboard Pro X");
collection.DeleteOne(deleteFilter);