如何在聚合Mongodb中删除换行“[”和“]”?

我是学习 MongoDB 的初学者,在使用聚合从集合中获取结果时遇到问题,我真的希望有人能帮助我:

我的代码:

  {
    "$project": {
      "_id": 0,"product_id": "$_id","product_phone": "$product_phone","product_tablet": "$product_tablet","product_colors": "$product_colors","options": [
        {
          title: "Mobile Phone",data: { 
            $ifNull: [ "$product_phone",null ] 
          }
        },{
          title: "Tablet",data: {
            $ifNull: [ "$product_tablet",null ]
          }
        },{
            $map: {
              input: '$product_colors',in: {
                  "title": "$$this.color","data": "$$this.photos"
              }                 
            }
        }  

      ] 
    }
  },

结果是(截图 1):

如何在聚合Mongodb中删除换行“[”和“]”?

但我想得到这样的结果(截图 2):

如何在聚合Mongodb中删除换行“[”和“]”?

谁能帮帮我?

emily198688 回答:如何在聚合Mongodb中删除换行“[”和“]”?

$map 返回一个数组,这就是您获取当前结构的原因。您可以做的是用 $concatArrays 将其全部包装起来,如下所示:

db.collection.aggregate([
  {
    "$project": {
       ...
      "options": {
        "$concatArrays": [
          [
            {
              title: "Mobile Phone",data: {
                $ifNull: [
                  "$product_phone",null
                ]
              }
            },{
              title: "Tablet",data: {
                $ifNull: [
                  "$product_tablet",null
                ]
              }
            }
          ],{
            $map: {
              input: "$product_colors",in: {
                "title": "$$this.color","data": "$$this.photos"
              }
            }
          }
        ]
      }
    }
  }
])

Mongo Playground

本文链接:https://www.f2er.com/2301.html

大家都在问