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

MongoDB:基本的なルックアップと比較してパフォーマンスの遅いパイプラインルックアップ

    lookupを実行すると pipelineを使用する 一致ステージを使用すると、インデックスは$eq operatorと一致するフィールドにのみ使用されます。 残りのインデックスは使用されません。

    また、パイプラインで指定した例は次のように機能します(ここでもインデックスは使用されないため、ここでは使用されません $eq

    db.matches.aggregate([
      {
        $lookup: {
          from: "players",
          let: {
            ids: {
              $map: {
                input: "$players",
                in: "$$this._id"
              }
            }
          },
          pipeline: [
            {
              $match: {
                $expr: {
                  $in: [
                    "$_id",
                    "$$ids"
                  ]
                }
              }
            }
          ],
          as: "players"
        }
      }
    ])
    

    プレーヤーはオブジェクトの配列であるため、最初にIDの配列にマッピングする必要があります

    MongoDBプレイグラウンド



    1. ホストからの監視、virtualenvからのセロリの実行(Djangoアプリ)

    2. 一致条件の前に特殊文字を無視する

    3. rubyredisクライアントスキャンとキー

    4. 公式の10genC#ドライバーを使用してgeo値のシリアル化オプションを設定するにはどうすればよいですか?