Jou*_*man 3 mongodb mongodb-.net-driver
我知道我可以通过设置特定字段来原子地更新现有的Mongo文档。下面的代码可以做到这一点:
var update = MongoDB.Driver.Builders.Update.Set("InsideLegMeasurement", 32.4);
SafeModeResult result = personCollection.Update(query, update, UpdateFlags.Multi,SafeMode.True);
Run Code Online (Sandbox Code Playgroud)
但是,我可以通过传入要与现有文档“合并”的文档来自动更新几个字段吗?想象一下,我有一个文档如下:{“ favcolor”:“ red”,“ favfood”:“ pasta”},我想用这些值更新现有文档。我想做这个:
var update = MongoDB.Driver.Builders.Update.Merge({"favcolor":"red","favfood":"pasta"});
Run Code Online (Sandbox Code Playgroud)
甚至
var update = MongoDB.Driver.Builders.Update.Merge(myUpdateBsonDoc);
Run Code Online (Sandbox Code Playgroud)
其中myBsonDocument包含很多字段,我不想从要与原始文档合并的文档中“解包”。
这有可能吗?
谢谢
找到了答案:
//var snippetJSON= '{title:"Tin Machine II",brandnewfield:"this gets added nicely"}';
MongoDB.Bson.BsonDocument updateDoc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(snippetJSON);
var update = new UpdateDocument { { "$set", updateDoc } };
Run Code Online (Sandbox Code Playgroud)
当您知道如何时就轻松!
| 归档时间: |
|
| 查看次数: |
5815 次 |
| 最近记录: |