StackOverflow社区,我有一个与此家伙相似的问题 How to get only List of IDs of JSON Objects?
但是我需要对MongoDB查询进行处理,因为我需要查询大量数据。
我有1个这样的对象:
{
"_id": ObjectId(".."),
"data":
[
{
customId : 22,
customArr:[
321,
123
]
},
{
customId : 33,
customArr:[
123
]
},
{
customId : 22,
customArr:[
]
}
]
}
(ofc有更多数据,但这仅对此很重要) 问题: 我不知道如何获取这样的列表:
[22,33]
和
[123,321]
我需要这些列表来计算我的数据,但目前我完全无法计算任何东西。 我无法更改结构,因为我已经以这种格式存储了很多数据,这会破坏我的整个应用程序。
我正在使用MongoDB 3.4,因此所有3.2聚合更新都可以使用, 但我无法正常工作。
任何人都可以链接我需要阅读的文档才能完成此任务吗?或给出任何提示,我需要MongoDB函数吗?
感谢您对Advance的帮助,如果找到我会发布我的解决方案
答案 0 :(得分:1)
您可以使用以下汇总
db.collection.aggregate([
{ "$project": {
"customId": { "$setUnion": "$data.customId" },
"customArr": {
"$reduce": {
"input": "$data",
"initialValue": [],
"in": { "$setUnion": ["$$this.customArr", "$$value"] }
}
}
}}
])