首页 > web前端 > js教程 > 如何按降序对 MongoDB 中的嵌入数组进行排序?

如何按降序对 MongoDB 中的嵌入数组进行排序?

Susan Sarandon
发布: 2024-11-10 03:12:02
原创
720 人浏览过

How to Sort Embedded Arrays in MongoDB in Descending Order?

对 MongoDB 中的嵌入数组进行排序

问题:

如何对分数数组进行排序MongoDB 集合中的每个学生记录按降序排列分数?

问题:

考虑以下学生记录:

{
  "_id": 1,
  "name": "Aurelia Menendez",
  "scores": [
    {
      "type": "exam",
      "score": 60.06045071030959
    },
    {
      "type": "quiz",
      "score": 52.79790691903873
    },
    {
      "type": "homework",
      "score": 71.76133439165544
    },
    {
      "type": "homework",
      "score": 34.85718117893772
    }
  ]
}
登录后复制

尝试使用嵌入的 JavaScript 手动迭代分数数组mongo shell 会提示错误。

解决方案:

要对分数数组进行排序,请考虑以下 MongoDB 聚合框架管道:

db.students.aggregate(
  // Match the document (uses index if suitable)
  { $match: {
      _id: 1
  }},
  // Unwind scores array
  { $unwind: '$scores' },
  // Filter to specific score type (optional)
  { $match: {
      'scores.type': 'homework'
  }},
  // Sort scores array
  { $sort: {
      'scores.score': -1
  }}
)
登录后复制

输出 (示例):

{
  "result": [
    {
      "_id": 1,
      "name": "Aurelia Menendez",
      "scores": {
        "type": "homework",
        "score": 71.76133439165544
      }
    },
    {
      "_id": 1,
      "name": "Aurelia Menendez",
      "scores": {
        "type": "homework",
        "score": 34.85718117893772
      }
    }
  ],
  "ok": 1
}
登录后复制

以上是如何按降序对 MongoDB 中的嵌入数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板