Mongoose聚合:保留原始数组并使用不同的字段名称

时间:2018-03-08 10:57:02

标签: mongodb mongoose

我想继续关注文档,

  

{“_ id”:1,“item”:“ABC1”,尺寸:[{“k”:“l”,“v”:25},{   “k”:“w”,“v”:10},{“k”:“uom”,“v”:“cm”}]}

但需要为所有三个数组元素添加一个字段,因此上面的文档将返回为:

  

{“_ id”:1,“item”:“ABC1”,尺寸:[{“k”:“l”,“v”:25},   {“k”:“w”,“v”:10},{“k”:“uom”,“v”:“cm”}],尺寸:{“k”:   “l”,“v”:25}} //这里维度包含第一个数组元素

     

{“_ id”:1,“item”:“ABC1”,尺寸:[{“k”:“l”,“v”:25},{   “k”:“w”,“v”:10},{“k”:“uom”,“v”:“cm”}],尺寸:{“k”:   “w”,“v”:10}} //这里的维度包含第二个数组元素

     

{“_ id”:1,“item”:“ABC1”,尺寸:[{“k”:“l”,“v”:25},{   “k”:“w”,“v”:10},{“k”:“uom”,“v”:“cm”}],尺寸:{“k”:   “uom”,“v”:“cm”}} //这里的维度包含第三个数组元素

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

向管道添加以下步骤:

[
   ....
   { $addFields: { dimension: "$dimensions" } },
   { $unwind: "$dimension" }
]

不确定$arrayToObject与问题的关系。答案完全基于输入和预期的输出片段。