xxd*_*txx 2 mongodb c#-3.0 mongodb-.net-driver
我正在寻找一种有条件地结合Set操作的方法。此刻,我无法递增到updatedefinitions上,而又没有一个接一个的点。
例如。代替:
Builders<BsonDocument>.Update.Set("someElement.Length", b.Length)
.Set("someElement.Path", b.Path)
Run Code Online (Sandbox Code Playgroud)
我试图找到一种徒然使用某种东西的方法:
var update = Builders<BsonDocument>.Update;
bool hasChanged = false;
if (a.Length != b.Length)
{
hasChanged = true;
update.Set("someElement.Length", b.Length)
}
if (a.Path != b.Path)
{
hasChanged = true;
update.Set("someElement.Path", b.Path)
}
if (hasChanged)
await someCollection.UpdateOneAsync(Builders<someModel>.Filter.Eq("_id", a.Id), update);
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,还是我在天上追馅饼?我不想替换整个文档,并且只希望更新已更改的字段。
UpdateDefinition是一个不变的对象,因此对它们的链接操作每次都会创建一个新对象。要有条件地执行此操作,您需要将结果分配回给自己,就像LINQ一样。
更新= update.Set(...);
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |