MongoDB:使用C#驱动程序更新除_id之外的整个文档

时间:2013-01-15 10:50:33

标签: mongodb mongodb-.net-driver

我必须更新除_id之外的所有字段。 我想避免手动更新16个字段...... 所有新字段都存储在BsonDocument

感谢您的想法

2 个答案:

答案 0 :(得分:4)

正如@Philipp所暗示,有一种方法可以做到这一点。您实际上可以使用save函数(http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTutorial-Save%3CTDocument%3Emethod)来完成他在数据库端为您所说的内容。

想象一下你有一份文件:

{
    _id: {},
    d: 1
}

并且_id已经存在,它将用这个替换以前的文档。

干嘛?

答案 1 :(得分:1)

当我理解正确时,您有一个包含新数据的文档B,并且您希望它完全替换文档A.

在这种情况下,您只需将文档B的_id字段显式设置为文档A的_id字段的值。然后保存文档B时,它将替换数据库中的文档A.

当保存的文档具有现有文档的ID时,数据库会将其视为该文档的新版本,而不是新文档。