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

$lookup集約演算子でシャーディングを使用するMongoDB

    引用するドキュメントが示すように、$lookupを使用することはできません。 シャーディングされたコレクション。したがって、ベストプラクティスの回避策は、別のクエリで自分でルックアップを実行することです。

    1. aggregateを実行します クエリ。
    2. おそらくArray#mapを使用して、クエリ結果から「localField」値を配列にプルします 。
    3. findを実行します {foreignField: {$in: localFieldArray}}のようなクエリを使用して、「from」コレクションに対してクエリを実行します
    4. 結果を必要な形式にマージします。

    $lookupにさせないでください 制限により、スケーラビリティのためにコレクションをシャーディングする必要がなくなり、ルックアップ機能を自分で実行するだけです。



    1. Redisリストまたはsetpopメソッドスレッドは安全ですか?

    2. Mongoで$regexと$or演算子を組み合わせる

    3. MongoDB updateMany()

    4. MongoDBのすべてのドキュメントのフィールドの名前を変更するにはどうすればよいですか?