13

MongoDB的界面与之前的完全不同。 在这里您可以看到官方文档,其中包含一些有关如何搜索、插入和更新的示例,但是 upserts 呢?

元想法:我尝试在 google 和 SO 上搜索,但许多资源都引用了旧界面。也许创建一个 MongoLegacy 标签会很好。

4

1 回答 1

30

将 的实例UpdateOptions作为 options 参数传递UpdateOneAsync(filter, update, 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 ReplaceOptions { IsUpsert = true });
于 2015-05-06T17:32:51.220 回答