MongoDB聚合:在单个数组中检索数据

Ste*_*han 0 mongodb mongodb-query aggregation-framework

我有数百万个具有以下架构的文档:

{
   _id: '3fbwehgzgfwehgrqwegrqwer',
   someData: [0,1],
   moreData: {
       key: true
   } 
},

{
   _id: '24nj5h219ebwjfqwverqwer',
   someData: [2,3],
   moreData: {
       key: true
   } 
},
Run Code Online (Sandbox Code Playgroud)

我需要将someData数组组合成一个结果数组,例如:

{
    result: [
       [0,1],
       [2,3] 
    ]
}
Run Code Online (Sandbox Code Playgroud)

ser*_*iuz 5

使用聚合管道,可以$group通过_id: null$push所有$someDataresult领域:

db.collection.aggregate([
    {"$group":{_id: null, result: {$push: "$someData"}}} 
]).pretty()
Run Code Online (Sandbox Code Playgroud)

结果:

{ "_id" : null, "result" : [ [ 0, 1 ], [ 2, 3 ] ] }
Run Code Online (Sandbox Code Playgroud)