你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 .NET 在 Azure Cosmos DB for MongoDB 中管理文档
适用对象: MongoDB
通过插入、更新和删除文档的功能来管理 MongoDB 文档。
注意
示例代码片段在 GitHub 上作为 .NET 项目提供。
API for MongoDB 参考文档 | MongoDB 包 (NuGet)
插入文档
在集合中插入一个或多个使用 JSON 架构定义的文档。
// 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);