我正在尝试在带有$ or语句的MongoDB C#聚合查询中使用数组。我的代码如下:
var groupsArray = new BsonArray
{new BsonDocument { { "role", 1 } },
new BsonDocument { { "role", 2 } },
new BsonDocument { { "role", 3 } }
};
var bsonOr = new BsonDocument
{
{
"$or",
groupsArray
}
};
var match = new BsonDocument { { "$match",
new BsonDocument { { "$or", bsonOr } } } };
但是,出现以下异常:
MongoDB.Driver.MongoCommandException:
Command 'aggregate' failed: exception: bad query:
BadValue $or needs an array (response:
{ "errmsg" : "exception: bad query: BadValue $or needs an array",
"code" : 16810, "ok" : 0.0 }).
有没有一种在我所缺少的查询中使用数组的特定方法?
将or
被添加两次。代码已更改为
var groupsArray = new BsonArray();
foreach (var g in groups)
{
groupsArray.Add(new BsonDocument() { { "role", g.Id.ToString() } });
}
var bsonOr = new BsonDocument
{
{
"$or",
groupsArray
}
};
var match = new BsonDocument { { "$match", bsonOr } };
并按我希望的那样工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句