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

如何以降序對 MongoDB 中的嵌入陣列進行排序?

Susan Sarandon
Susan Sarandon原創
2024-11-10 03:12:02718瀏覽

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
    }
  ]
}

考慮以下學生記錄:

嘗試使用 mongo shell 中嵌入的 JavaScript 手動迭代分數數組會提示錯誤。

解:
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
  }}
)

要將分數陣列排序,請考慮以下MongoDB 聚合框架管道:

{
  "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