MongoDB的界面与前一个界面完全不同。 Here您可以在官方文档中看到有关如何搜索,插入和更新的一些示例,但有关upsert的内容是什么?
meta的想法:我尝试在谷歌和SO上搜索,但许多资源都是指旧界面。也许创建一个MongoLegacy标签会很好。
答案 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 });