node.js - 如何在分组后对数组值进行排序 - mongodb

标签 node.js mongodb mongoose mongodb-query aggregation-framework

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

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

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

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

如何解决这个问题?

最佳答案

使用$sort之前$group阶段

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

关于node.js - 如何在分组后对数组值进行排序 - mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51523039/

相关文章:

javascript - Vert.x 相当于 Node.js 全局对象

Mongodb 嵌入式文档查询

用于计算按其他字段分组的唯一字段数的 Mongodb 查询

node.js - 为什么每次安装新库时都必须更新 npm?

javascript - 将mysql查询返回到nodejs flash消息

MongoDB 涵盖了嵌入文档的查询

javascript - 无法读取未定义的属性 'insertOnMatch' - TypeScript

json - 如何在 React 中使用 JSON 对象

javascript - 为什么 nodejs 在我的 BIT(1) 行上返回一个笑脸?

node.js - Mongoose 与第三级嵌套字段值进行比较