coo*_*000 8 .net c# mongodb mongodb-csharp-2.0 mongodb-.net-driver
我有一些C#代码使用旧的1.x版本的MongoDB驱动程序,它提供了使用该MongoCollection.Save()方法的通用保存方法.但是在升级到2.0之后,这个方法似乎已经消失,并被一个Update方法所取代,该方法需要指定对象上的所有更新字段(这对于通用方法显然没有好处......)
如何在2.0驱动程序中保留旧Save方法的功能(即只传入一个对象以更新所有字段)?
你可以用ReplaceOneAsync与IsUpsert标志和编号查询:
public async Task<ReplaceOneResult> Save(Hamster hamster)
{
var replaceOneResult = await collection.ReplaceOneAsync(
doc => doc.Id == hamster.Id,
hamster,
new UpdateOptions {IsUpsert = true});
return replaceOneResult;
}
Run Code Online (Sandbox Code Playgroud)
您可以查看ReplaceOneResult.MatchedCount它是插入还是更新.