首页 > 解决方案 > 将猫鼬结果转换为数组组

问题描述

根据聚合函数,我得到的输出形式为:-

> [ { DescriptionArray:
         [ 'Des1',
           'Des2',
           'Des3',
           'Des4' ],
        PicArray:
         [ 'Pic1.jpeg',
           'Pic2.jpeg',
           'Pic3.jpeg',
           'Pic4.jpeg' ] } ]

但是,我希望输出的形式为:-

>[ { DescriptionArray:
 [ 
  ['Des1'],
   ['Des2'],
   ['Des3'],
   ['Des4' ]
],PicArray:
 [ 
   ['Pic1.jpeg'],
   ['Pic2.jpeg'],
   ['Pic3.jpeg'],
   ['Pic4.jpeg'] 
] } ]

我的聚合函数如下:-

>User.aggregate([
  {
    "$project": {
      "_id": 0,
      "DescriptionArray": {
        "$reduce": {
          "input": "$services.description",
          "initialValue": [],
          "in": {
            "$concatArrays": [
              "$$this",
              "$$value"
            ]
          }
        }
      }, 
    "PicArray": {
        "$reduce": {
          "input": "$services.badpic",
          "initialValue": [],
          "in": {
            "$concatArrays": [
              "$$this",
              "$$value"
            ]
          }
        }
      }
     }
  }
])

我的数据库架构如下:-

> var serviceSchema = new mongoose.Schema({
  description:[String],
  pic:[String]
})

有什么办法,我可以得到我想要的格式的输出?

标签: arraysnode.jsmongodbmongoosehandlebars.js

解决方案


推荐阅读