如何使用MongoDB 2.0进行upsert?

时间:2015-05-06 16:35:40

标签: c# mongodb mongodb-csharp-2.0

MongoDB的界面与前一个界面完全不同。 Here您可以在官方文档中看到有关如何搜索,插入和更新的一些示例,但有关upsert的内容是什么?

meta的想法:我尝试在谷歌和SO上搜索,但许多资源都是指旧界面。也许创建一个MongoLegacy标签会很好。

1 个答案:

答案 0 :(得分:22)

UpdateOptions的实例作为UpdateOneAsync(filter, update, options)中的options参数传递,例如:

collection.UpdateOneAsync(p => p.Id == user.Id, 
    Builders<User>.Update.Set(p => p.Name, "John"), 
    new UpdateOptions { IsUpsert = true });

修改

要替换文档,请改为呼叫ReplaceOneAsync

collection.ReplaceOneAsync(p => p.Id == user.Id, 
    user, 
    new UpdateOptions { IsUpsert = true });