MongoDB でのネストされた配列の並べ替え
問題:
埋め込み配列フィールドをどのように並べ替えますか? MongoDB ドキュメント (学生のスコア配列など) collection?
提案された解決策:
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 中国語 Web サイトの他の関連記事を参照してください。