【问题标题】:how to get data in form of array in mongoose group如何在猫鼬组中以数组形式获取数据
【发布时间】:2021-06-28 18:42:13
【问题描述】:

我有一个数据集,例如link to code

我使用了这个 mongo 查询

db.collection.aggregate([
  {
    "$match": {}
  },
  {
    "$sort": {
      "price": 1
    }
  },
  {
    "$group": {
      "_id": "$name",
      "foodType": {
        "$first": "$type"
      }
    }
  },
  
])

它不是聚合类型。 link to code

如何进行聚合,或使用哪些函数,以便我根据名称或商品将 type object 聚合为所有组的数组

[
  {
    "_id": "Shubham",
    "foodType": [{
      "packed": true,
      "rating": 4,
      "veg": false
    },
    {
      "veg": true,
      "packed": false,
      "rating": 3
    }]
  },
  {
    "_id": "Rahul",
    "foodType": [{
      "packed": true,
      "rating": 4,
      "veg": false
    },
    {
      "veg": false,
      "packed": true,
      "rating": 4
    }
    {
      "veg": false,
      "packed": false,
      "rating": 2
    }]
  }
]

【问题讨论】:

    标签: mongodb mongoose aggregation-framework


    【解决方案1】:

    你可以在 $group 中使用 $push 操作符,

    db.collection.aggregate([
      {
        "$match": {}
      },
      {
        "$sort": {
          "price": 1
        }
      },
      {
        "$group": {
          "_id": "$name",
          "foodType": {
            $push:{
              veg:"$type.veg",
              packed:"$type.packed",
              rating:"$type.rating",
            }
          }
        }
      },
      
    ])
    
    

    Refer here

    【讨论】:

    • 明白你的意思,但对于给定的场景,“$veg”必须被称为“$type.veg”。因为它是嵌套数据。
    • 是的,你是对的,我已经更新了我的答案。
    猜你喜欢
    • 2016-01-21
    • 2020-10-25
    • 2020-01-02
    • 2016-02-18
    • 2021-11-19
    • 1970-01-01
    • 2017-04-22
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多