小编Sub*_*sta的帖子

MongoDB c# 使用定义构建器检索文档中数组中的所有匹配元素

我有一个结构看起来像这样的文档,带有嵌套的子文档

{  
   "_id":ObjectId("50419077c2e6a1e18a489a0f"),
   "user":"Jone Doe",
   "fooArray":[  
      {  
         "plot":"circle",
         "color":"yellow",
      },
      {  
         "plot":"circle",
         "color":"red",
      },
      {  
         "plot":"square",
         "color":"green",
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我想在这个具有圆形图的文档中检索 fooArray 中的所有匹配元素。

这是我试过的

var filter = FilterBuilder.filter.Eq(doc => doc.User, User);
var projection = ProjectionBuilder
                .Exclude(doc => doc.Id)
                .Exclude(doc => doc.User)
                .Include(doc => doc.FooArray)
                .ElemMatch(x => x.FooArray, y => y.Plot == "circle");

var definition = new OperationDefinitions<ShapeDocument> { Filter = filter };
            return await Performer.Perform(definition, async (def, collection) =>
            {
                var findResult = collection.Find(def.Filter).Project(projection);

                var result = await findResult.SingleOrDefaultAsync();
            }); …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-.net-driver asp.net-core

4
推荐指数
1
解决办法
5375
查看次数

标签 统计

asp.net-core ×1

c# ×1

mongodb ×1

mongodb-.net-driver ×1