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

MongoDB、Flask、$unwindクエリで集計

    これは、$unwindを使用して実現できます。 次に、$group $pushを使用 、このように:

    db.pitcrewdb.aggregate([
      {
        "$match": {
          "run_number": "1",
          "frames.frame_number": {
            "$gte": 2
          }
        }
      },
      {
        "$project": {
          "_id": 0
        }
      },
      {
        "$unwind": "$frames"
      },
      {
        "$match": {
          "frames.frame_number": {
            "$gte": 2
          }
        }
      },
      {
        "$group": {
          "_id": "$run_number",
          "frames": {
            "$push": "$frames"
          }
        }
      }
    ])
    

    $unwind 配列を破棄してから、結果をフィルタリングし、$groupの後に それらを再び

    または、$filterを使用してそれを行うこともできます

    db.pitcrewdb.aggregate([
      {
        "$match": {
          "run_number": "1"
        }
      },
      {
        "$project": {
          "_id": 0,
          "frames": {
            $filter: {
              input: "$frames",
              as: "frame",
              cond: {
                $gte: [
                  "$$frame.frame_number",
                  2
                ]
              }
            }
          }
        }
      }
    ])
    



    1. mongodb不可能(?)E11000重複キーエラーアップサーティング時の重複キー

    2. PHPスクリプトからRedisに接続しようとしたときに許可が拒否されたトラブルシューティング

    3. Redis一括挿入

    4. Javaでmongodb$groupを使用する方法は?