Mongo Aggregate用于选择数组的某些对象

时间:2015-09-09 08:14:30

标签: mongodb

我正试图在mongodb中获取一些数组对象。

我有这样的事情:

{
   _id: 1,
   prop1: "string",
   prop2: 4,
   prop3: [
       { val1: "a", val2: "b" },
       { val1: "c", val2: "d" },
       { val1: "a", val2: "l" },
       { val1: "b", val2: "m" },
       { val1: "j", val2: "k" },
       { val1: "a", val2: "o" }
}

我想得到这个结果:

{
   _id: 1,
   prop1: "string",
   prop2: 4,
   prop3: [
       { val1: "a", val2: "b" },
       { val1: "a", val2: "l" },
       { val1: "a", val2: "o" }
}

据我所知,$elemMatch只返回第一个匹配的元素,我希望得到所有匹配的元素。

我已阅读过有关$redact (aggregation) here的内容,但我获得的唯一内容是错误。

1 个答案:

答案 0 :(得分:0)

我假设您的收藏品的名称是数据

  db.data.aggregate([
  {$match:{"prop3.val1":"a"}},
  {$group: {id:"$prop3"}}
  ])

我希望这可以帮到你!!