对 MongoDB 中的嵌套数组进行排序
问题:
如何对嵌套数组中的嵌入数组字段进行排序MongoDB 文档,例如学生集合中的分数数组?
建议的解决方案:
由于 Mongo 原生排序功能的限制,您需要使用应用程序代码或 MongoDB 聚合操作嵌入数组的框架。
聚合框架解决方案:
使用 MongoDB 聚合框架,您可以执行以下步骤对分数数组进行降序排序:
聚合示例:
db.students.aggregate([ // Initial document match { $match: { _id : 1 }}, // Expand scores array { $unwind: '$scores' }, // Filter homework scores { $match: { 'scores.type': 'homework' }}, // Sort in descending order { $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中文网其他相关文章!