gpt4 book ai didi

c# - 旧 .net 驱动程序 MongoCollection.Save 的新替代方案?

转载 作者:IT老高 更新时间:2023-10-28 13:15:42 26 4
gpt4 key购买 nike

我有一些使用旧 1.x 版本的 MongoDB 驱动程序的 C# 代码,该驱动程序提供了使用 MongoCollection.Save() 方法的通用保存方法。但是在升级到 2.0 之后,这个方法似乎消失了,取而代之的是一个 Update 方法,该方法需要指定对象上的所有更新字段(这显然不适合泛型方法......)

如何在 2.0 驱动程序中保留旧 Save 方法的功能(即只传入一个对象来更新所有字段)?

最佳答案

您可以将 ReplaceOneAsyncIsUpsert 标志和 id 查询一起使用:

public async Task<ReplaceOneResult> Save(Hamster hamster)
{
var replaceOneResult = await collection.ReplaceOneAsync(
doc => doc.Id == hamster.Id,
hamster,
new UpdateOptions {IsUpsert = true});
return replaceOneResult;
}

您可以查看 ReplaceOneResult.MatchedCount 以了解它是插入还是更新。

关于c# - 旧 .net 驱动程序 MongoCollection.Save 的新替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com