c# - 更新 MongoDb 中对象的所有属性

标签 c# .net mongodb mongodb-.net-driver mongodb-csharp-2.0

我在我的项目中使用 MongoDB .Net 驱动程序。我想更新存储在 MongoDB 中的对象的所有属性。在文档中,更新显示如下:

var filter = Builders<BsonDocument>.Filter.Eq("i", 10);
var update = Builders<BsonDocument>.Update.Set("i", 110);

await collection.UpdateOneAsync(filter, update);

但我不想为所有属性调用 Set 方法,因为有很多属性,将来可能会更多。

如何使用 MongoDB .Net 驱动程序更新整个对象?

最佳答案

您可以使用 ReplaceOneAsync 而不是 UpdateOneAsync 来做到这一点。

您需要一个过滤器来匹配现有文档(带有文档 id 的过滤器是最简单的)和新对象。

Hamster hamster = ...
var replaceOneResult = await collection.ReplaceOneAsync(
    doc => doc.Id == hamster.Id, 
    hamster);

关于c# - 更新 MongoDb 中对象的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30893012/

相关文章:

c# - 如何完全获取c#中方法的路径?

c# - 如何编写参数化的oracle插入查询?

.net - 通过 LINQ 查询突破 Parallel.ForEach

java - 具有特定文档类的 MongoDB getCollection

c# - MongoDB ssl 通过 C# 驱动程序 : The remote certificate is invalid according to the validation procedure

c# - DateTime 到 Hex 并在不转换为 Int64 的情况下反转

c# - WPF套接字客户端结构

.NET MVC - 如何从另一个 Controller 获取 JsonResult?

c# - 更新语句通过 C# Winform 应用程序更新 0 行?

c# - 如何在 C# Mongodb 强类型驱动程序中删除嵌套文档数组内的元素