ホームページ > ウェブフロントエンド > jsチュートリアル > MongoDB の埋め込み配列を降順に並べ替えるにはどうすればよいですか?

MongoDB の埋め込み配列を降順に並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-10 03:12:02
オリジナル
740 人が閲覧しました

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
    }
  ]
}
ログイン後にコピー

埋め込み 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート