与使用数组更新运算符$ 的以下查询等效的MongoDB C#驱动程序是什么
来自https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#up。 S [%3Cidentifier%3E]
鉴于以下收集
{ "_id" : 1, "grades" : [ { "grade" : 80, "mean" : 75, "std" : 6 }, { "grade" : 85, "mean" : 90, "std" : 4 }, { "grade" : 85, "mean" : 85, "std" : 6 } ] } { "_id" : 2, "grades" : [ { "grade" : 90, "mean" : 75, "std" : 6 }, { "grade" : 87, "mean" : 90, "std" : 3 }, { "grade" : 85, "mean" : 85, "std" : 4 } ] }
和查询
db.students2.update( { }, { $set: { "grades.$[elem].mean" : 100 } }, { multi: true, arrayFilters: [ { "elem.grade": { $gte: 85 } } ] } )
如何使用C#驱动程序执行相同的查询? 目前我只是使用db.RunCommand
对数据库运行查询,因为我看不到用当前驱动程序将其转换为C#的方法。
您可以使用BsonDocument
和json string选项在c#下面尝试。 没有linq选项。
上述就是C#学习教程:与使用数组更新运算符$ 的以下查询等效的MongoDB C#驱动程序是什么分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var filter = Builders.Filter.Empty; var update = Builders .Update.Set("grades.$[elem].mean", 100); var arrayFilter = new BsonDocumentArrayFilterDefinition (new BsonDocument("elem.grade", new BsonDocument("$gte", 85))); var arrayFilter = new JsonArrayFilterDefinition ("{ "elem.grade": { $gte: 85 } }"); var arrayFilters = new List { arrayFilter }; var updateOptions = new UpdateOptions(); updateOptions.ArrayFilters = arrayFilters; var result = collection.UpdateOne(filter, update, updateOptions);
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/987216.html