Mongodb Mongo聚合以选择数组的某些对象

Mongodb Mongo聚合以选择数组的某些对象,mongodb,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"

我试图在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)
,但我得到的唯一信息是一些错误。

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

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

我希望这能帮助你

这是错误的,副本已经被OP接受了。