我在数据库中有这个实体
{
"_id" : ObjectId("XXX"),
"Bets" : [
{
"IsPublic" : false
},
{
"IsPublic" : false
}
]
}
我想更新嵌套文档中的所有filed IsPublic。我有此查询,它完美地工作:
db.getCollection('bets').update({"_id": ObjectId("XXX")}, {$set : { "Bets.$[].IsPublic" : true }})
我想使用C#驱动程序编写相同的查询,并且我更喜欢强类型查询,如下所示:
var filter = Builders<TrackerBet>.Filter.Eq(b => b.Id, "XXX");
var update = Builders<TrackerBet>.Update.Set(b => b.Bets[-1].IsPublic, true);
var result = mongoDb.Bets.UpdateOneAsync(filter, update).Result;
但这是行不通的。如果我放弃强类型查询,它将起作用:
var update = Builders<TrackerBet>.Update.Set("Bets.$[].IsPublic", true);
甚至有可能实现强类型查询?我认为b.Bets [-1] .IsPublic应该可以解决问题,但出现错误位置运算符未从查询中找到所需的匹配项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句