首頁 > web前端 > js教程 > 如何對 MongoDB 中的嵌入陣列欄位進行排序?

如何對 MongoDB 中的嵌入陣列欄位進行排序?

Mary-Kate Olsen
發布: 2024-11-10 22:54:03
原創
647 人瀏覽過

How to Sort an Embedded Array Field in MongoDB?

對MongoDB 中的巢狀數組進行排序

問題:
如何對嵌套中對嵌套數組中數組的嵌入數組字段進行排序MongoDB文檔,例如student中的scores數組集合?

建議的解決方案:
由於 Mongo 原生排序功能的限制,您需要使用應用程式程式碼或 MongoDB 聚合框架來操作嵌入式陣列。

聚合框架解決方案:
使用MongoDB聚合框架,您可以執行依照下列步驟依降序對分數陣列進行排序:

  1. 文件匹配: 使用適當的索引(如果可用)來匹配所需文件。
  2. 陣列擴充: 展開分數數組,為每個分數建立一個文件流程分數。
  3. 類型過濾: 過濾流以選擇特定類型的分數(例如「作業」)。
  4. 排序: 排序分數依降序排列。

聚合範例:

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板