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