首頁  >  文章  >  web前端  >  如何對 MongoDB 中嵌入的分數數組進行排序?

如何對 MongoDB 中嵌入的分數數組進行排序?

Barbara Streisand
Barbara Streisand原創
2024-11-06 22:29:02624瀏覽

How to Sort an Embedded Array of Scores in MongoDB?

對MongoDB 中集合記錄中的數組進行排序

問題陳述

考慮以下集合MongoDB 中的學生記錄,其中每筆記錄都包含嵌入的分數陣列。任務是根據score值對scores數組進行降序排序。

由於MongoDB查詢語言的限制,直接操作內嵌數組在查詢本身內是不可能的。要實現這種排序,您可以探索兩種方法:

1。應用程式層級排序

使用查找查詢從集合中提取分數數組。在應用程式程式碼中按降序對分數數組進行排序。將排序後的分數數組的記錄更新回 MongoDB。

2. MongoDB 聚合框架

利用 MongoDB 聚合框架,您可以在 MongoDB 本身內執行排序。以下是按降序對作業分數進行排序的範例聚合管道:

db.students.aggregate([
    { $match: { _id: 1 } },  // Initial document match
    { $unwind: '$scores' },  // Expand scores array into individual documents
    { $match: { 'scores.type': 'homework' } },  // Filter to homework scores
    { $sort: { 'scores.score': -1 } },  // Sort in descending order
])

範例輸出:

{
    "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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn