引用するドキュメントが示すように、$lookupを使用することはできません。 シャーディングされたコレクション。したがって、ベストプラクティスの回避策は、別のクエリで自分でルックアップを実行することです。
aggregateを実行します クエリ。- おそらく
Array#mapを使用して、クエリ結果から「localField」値を配列にプルします 。 findを実行します{foreignField: {$in: localFieldArray}}のようなクエリを使用して、「from」コレクションに対してクエリを実行します- 結果を必要な形式にマージします。
$lookupにさせないでください 制限により、スケーラビリティのためにコレクションをシャーディングする必要がなくなり、ルックアップ機能を自分で実行するだけです。