我正试图在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的内容,但我获得的唯一内容是错误。
答案 0 :(得分:0)
我假设您的收藏品的名称是数据
db.data.aggregate([
{$match:{"prop3.val1":"a"}},
{$group: {id:"$prop3"}}
])
我希望这可以帮到你!!