Mongodb Mongo聚合以选择数组的某些对象
我试图在mongodb中获取数组的一些对象 我有这样的想法: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"
{
_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接受了。