更新文档
您可以在 MongoCollection
对象上使用 UpdateOne() 方法更新单个文档。此方法需要一个查询筛选条件(指定要更新哪份文档)和一个更新语句(指定驱动程序应该对匹配该查询筛选条件的第一份文档进行什么更改)。
注意
UpdateOne()
方法仅更新与过滤器匹配的第一个文档。要更新多个文档,请使用 UpdateMany() 方法。
提示
您可以向 UpdateOne()
方法传递 UpdateOptions 的实例,以自定义其行为。
例子
以下示例使用Builders
将restaurants
集合中名为“Bagels N Buns”的第一个文档的name
更新为“2 Bagels 2 Buns”。
选择 Asynchronous 或 Synchronous 标签页,查看相应的代码。
// Creates a filter for all documents with a "name" of "Bagels N Buns" var filter = Builders<Restaurant>.Filter .Eq(restaurant => restaurant.Name, "Bagels N Buns"); // Creates instructions to update the "name" field of the first document // that matches the filter var update = Builders<Restaurant>.Update .Set(restaurant => restaurant.Name, "2 Bagels 2 Buns"); // Updates the first document that has a "name" value of "Bagels N Buns" return await _restaurantsCollection.UpdateOneAsync(filter, update);
有关 UpdateOneAsync()
操作的完全可运行示例,请参阅 UpdateOneAsync 示例。
// Creates a filter for all documents with a "name" of "Bagels N Buns" var filter = Builders<Restaurant>.Filter .Eq(restaurant => restaurant.Name, "Bagels N Buns"); // Creates instructions to update the "name" field of the first document // that matches the filter var update = Builders<Restaurant>.Update .Set(restaurant => restaurant.Name, "2 Bagels 2 Buns"); // Updates the first document that has a "name" value of "Bagels N Buns" return _restaurantsCollection.UpdateOne(filter, update);
有关 UpdateOneAsync()
操作的完全可运行示例,请参阅 UpdateOne 示例。
预期结果
运行上述任一完整示例后,每次调用 UpdateOne()
都会将以下内容写入控制台:
Updated documents: 1
提示
UpdateOne()
返回 updateResult 对象。
详细信息
如需了解有关使用生成器的更多信息,请参阅生成器操作。