對MongoDB 中的巢狀數組進行排序
問題:
如何對嵌套中對嵌套數組中數組的嵌入數組字段進行排序MongoDB文檔,例如student中的scores數組集合?
建議的解決方案:
由於 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中文網其他相關文章!