我有这个型号:
公共类DraftItem { 公共列表< DraftNode>节点{get;组; } } 公共类DraftNodes { … 公共列表< DraftTerm>属性{get;组; } } …
以强类型方式构建此查询的最简单方法是运行 AsQueryable() 在您的集合上,然后使用LINQ语法,如下所示:
AsQueryable()
var query = Col.AsQueryable().Where( x => x.Nodes.Any(n => n.Properties.Any(q => q.Id == objectId))); var result = query.ToList();
运行后,您可以登记入住 MongoDB分析器 它将被转换为聚合框架 $match 阶段,与您的查询完全一样:
$match
"pipeline" : [ { "$match" : { "Nodes.Properties._id" : ObjectId("...") } } ]