MongoDB:项目元素存在于对象中的数组中
我在mongo有一个收藏,我只需要其中的一部分 文档的结构如下所示:MongoDB:项目元素存在于对象中的数组中,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我在mongo有一个收藏,我只需要其中的一部分 文档的结构如下所示: { outerArray: [ { innerArray: [ { elem: val1 }, { elem: val2 } ] }, { innerArray: [ { elem: val3 },
{
outerArray: [
{
innerArray: [
{
elem: val1
},
{
elem: val2
}
]
},
{
innerArray: [
{
elem: val3
},
{
elem: val1
}
]
}
]
}
我只需要此集合中的elem
的值。此外,获得唯一值也是一个优点,但不是必需的
所需输出:
{
elem: [
val1,
val2,
val3
]
}
我尝试过投射和聚合,但没有成功。
我正在使用Mongo 3.4.6。您需要的
看看,然后。我用它来构建这个聚合管道
db.i.aggregate([{ $unwind: "$outerArray" }, { $unwind: "$outerArray.innerArray" }, { $group: { _id: "$_id", "elem": { $addToSet: "$outerArray.innerArray.elem" } } } ])
你需要
看看,然后。我用它来构建这个聚合管道
db.i.aggregate([{ $unwind: "$outerArray" }, { $unwind: "$outerArray.innerArray" }, { $group: { _id: "$_id", "elem": { $addToSet: "$outerArray.innerArray.elem" } } } ])
使用MongoDB的:
测试:使用MongoDB:
测试:内部数组的键是常量还是动态的
innerray
的键是常量内部数组的键是常量innerray
的键是常量还是动态的innerray
的键是常量