ホームページ > 記事 > ウェブフロントエンド > MongoDB の埋め込み配列を降順に並べ替えるにはどうすればよいですか?
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 } ] }
埋め込み JavaScript を使用してスコア配列を手動で反復しようとしました。 mongo シェルはプロンプトを表示しますエラー。
解決策:
スコア配列を並べ替えるには、次の MongoDB 集約フレームワーク パイプラインを検討してください:
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 }} )
Output (サンプル):
{ "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 中国語 Web サイトの他の関連記事を参照してください。