【发布时间】:2018-12-29 21:18:48
【问题描述】:
我有下一个查询过滤集合中的嵌套数组文档并且不工作(总是返回 false):
var collection = MongoClientSingleton.GetInstance().GetCollection<Access>
("access");
var filters = Builders<Access>.Filter.Eq("modules", new BsonDocument { {
"value", val }, { "enabled", true }, { "type", type } });
return collection.Find(filters).Any();
当我使用 linq 构建过滤器时,我取得了成功:
var filters = Builders<Access>.Filter.Where(a => a.modules.Any(m => m.value == val && m.enabled == true && m.type == type));
但我想让过滤器更像显示的第一个代码(使用 BsonDocument 类)。
Access和Module的类结构是这样的:
public class Access
{
...
public List<Module> modules {get; set; }
...
}
public class Module
{
...
public string value { get; set; }
public bool enabled { get; set; }
public string type { get; set; }
...
}
谢谢!
【问题讨论】: