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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-10 03:12:02711ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。