MongoDB中的组合数组

问题描述 投票:1回答:2

嗨,这是我的代码,只是不确定该怎么办

db.car3.aggregate([{$group:{_id:"$Manufacturer",Extras:{$push:"$Extras"}}}]) 

我得到的结果是

{_ID:"Fiat","Extra:[[Aircon,parking,GPS],[GPS,Parking Sensor, Pass]]"},
{_ID:"Toyota","Extra:[[ABS,Power Windows,GPS],[GPS,Auto Wiper, Pass]]"}

我不确定如何将这些数组组合在一起,所以最终是这样

{_ID:"Fiat","Extra:[[Aircon,parking,GPS,Parking Sensor, Pass]]"},    
{_ID:"Toyota","Extra:[ABS,Power Windows,GPS,Auto Wiper, Pass]"}
arrays mongodb mongodb-query array-merge
2个回答
0
投票

您使用$reduce运算符将数组中的每个元素组合为一个值(在这种情况下,将多个数组合并为一个数组)。>>

只需在$group阶段之后将此阶段添加到您的聚合中:

{ 
  $addFields: { 
      Extra: { 
          $reduce: { 
               input: "$Extra", 
               initialValue: [ ], 
               in: { $concatArrays : [ "$$value", "$$this" ]  } 
          }
      }
  }
}

0
投票

似乎$extra已经是一个数组。因此,在$group之前使用$unwind

© www.soinside.com 2019 - 2024. All rights reserved.