首页 > 解决方案 > 分组后如何对数组值进行排序 - mongodb

问题描述

我已将数据与收藏夹进行分组,并且已推入数组。我想使用对象键对数组进行排序,例如姓名、电子邮件或年龄。

 {
                        $group:
                        {
                            _id: "$favourite",
                            favourite: { $first: "$favourite" },
                            data: {
                                $push: {
                                    "name": "$name",
                                    "email": "$email",
                                    "age": "$age"
                                }
                            }
                        }
                    }

我尝试使用下面的代码,但它不起作用。

  { "$sort": { "data.name": 1 } }

如何解决这个问题?

标签: node.jsmongodbmongoosemongodb-queryaggregation-framework

解决方案


阶段$sort前使用$group

db.collection.aggregate([
  { "$sort": { "name": 1 }},
  { "$group": {
    "_id": "$favourite",
    "favourite": { "$first": "$favourite" },
    "data": {
      "$push": {
        "name": "$name",
        "email": "$email",
        "age": "$age"
      }
    }
  }}
])

推荐阅读