我正在使用MongoDB 3.2
我有一个带有嵌入式数组的文档,我想要提取单个元素并保留整个文档的其余部分。
我的文件:
{
_id: 1,
items: [
{
type: "A",
id: 41
},
{
type: "A",
id: 42
},
{
type: "B",
id: 43
},
...
]
}
现在我想要一些查询来执行以下操作:
_id=1
items
数组,找到type=A AND id=42
的所有元素。然后将这些元素放在machtingItems
数组中。items
数组,因此它包含最大值。 2个元素结果应该是这样的:
{
_id: 1,
items: [
{
type: "A",
id: 41
},
{
type: "A",
id: 42
}
],
matchingItems: [
{
type: "A",
id: 42
}
]
}
基本上应该只有一个元素匹配type=A and id=42
,但在查看聚合框架后,可能更容易使用matchingItems
的数组而不是简单的字段。
我知道如何$match
整个文档以及如何$slice
数组。但我无法弄清楚如何从数组中提取单个元素并将其放在另一个字段中。 (第2步)
提前致谢!