我尝试使用MongoDb.Driver
2.4.4更新文档中的多个字段。
我搜索过Stackoverflow,所有类似的潜在问题都适用于允许链接.Set()
函数的旧版本。它没有出现2.4.4允许这个。
我的代码目前包含
var update = MongoDB.Driver.Builders<UserLocation>.Update.Set(x => x.Loction, coordinates);
var updateResult = await this._mongo.Taps.UpdateOneAsync(filter, update);
我想在此处更新其他字段,并在一次交易中更新所有字段。
答案 0 :(得分:1)
我搜索过Stackoverflow以及所有潜在的问题 类似的旧版本允许链接.Set() 功能。它没有出现2.4.4允许这个。
这里没有任何改变,2.4.4版本的MongoDb.Driver仍然允许链接Set
个电话。
UpdateDefinitionBuilder<TDocument>.Set()
返回UpdateDefinition<TDocument>
的实例。链式Set()
调用是通过UpdateDefinition<TDocument>
类的扩展方法完成的。此扩展方法在UpdateDefinitionExtensions
命名空间的MongoDB.Driver
类中定义。
我敢打赌你没有使用MongoDB.Driver
命名空间的指令,因为在你的代码片段中你明确指定了MongoDB.Driver
命名空间。这就是为什么编译器不知道应该调用的Set()
扩展方法。
要修复此问题并已编译链接Set()
个调用,只需添加
using MongoDB.Driver;
位于源文件的顶部。然后,您就可以链接Set()
次来电话:
var update = Builders<UserLocation>.Update.Set(x => x.Loction, coordinates)
.Set(x => x.SomeField1, someValue1)
.Set(x => x.SomeField2, someValue2);
var updateResult = await this._mongo.Taps.UpdateOneAsync(filter, update);