sql >> データベース >  >> NoSQL >> MongoDB

配列Mongoose/Mongodb内のネストされたサブドキュメントのdesc値に基づいてクエリ結果を並べ替えます

    配列を直接並べ替えることはできませんが、集計はそれを助けます

    • $unwind アレイの構造を解除するのに役立ちます
    • $sort 好きなように並べ替えるのに役立ちます
    • $group 構造化されていないアレイを再グループ化するのに役立ちます

    Mongoスクリプトを以下に示します

    db.collection.aggregate([
      {
        "$match": {
          "serviceAreas.slug": "nashville"
        }
      },
      {
        $unwind: "$serviceAreas"
      },
      {
        $sort: {
          "serviceAreas.totalClosedSales": -1
        }
      },
      {
        $addFields: {
          total: "$serviceAreas.totalClosedSales"
        }
      },
      {
        $sort: {
          total: -1
        }
      },
      {
        $group: {
          _id: "$_id",
          mlsId: {
            $first: "$mlsId"
          },
          firstName: {
            $first: "$firstName"
          },
          lastName: {
            $first: "$lastName"
          },
          slug: {
            $first: "$slug"
          },
          serviceAreas: {
            $push: "$serviceAreas"
          }
        }
      }
    ])
    

    作業中Mongo遊び場




    1. スケーラビリティが関係ない場合のNoSQLとSQL

    2. 予期しないredisサーバー障害の診断

    3. meteorで集計関数を使用する方法

    4. 複数の基準でネストされた配列からオブジェクトを削除する