嗨,这是我的代码,只是不确定该怎么办
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]"}
您使用$reduce
运算符将数组中的每个元素组合为一个值(在这种情况下,将多个数组合并为一个数组)。>>
只需在$group
阶段之后将此阶段添加到您的聚合中:
{
$addFields: {
Extra: {
$reduce: {
input: "$Extra",
initialValue: [ ],
in: { $concatArrays : [ "$$value", "$$this" ] }
}
}
}
}
似乎$extra
已经是一个数组。因此,在$group
之前使用$unwind
。