この答えは時代遅れです。バージョン3.2以降、MongoDBでは、$lookup集約演算子を使用した左外部結合のサポートが制限されています
MongoDBは、複数のコレクション(期間)にまたがるクエリを実行しません。複数のコレクションからのデータを結合する必要がある場合は、複数のクエリを実行して、アプリケーションレベルで結合する必要があります。
- クエリコレクションA
- 結果から2次キーを取得し、それらを配列に配置します
- クエリコレクションBは、その配列を$in-operatorの値として渡します
- アプリケーション層でプログラムによって両方のクエリの結果を結合します
これをしなければならないことは、標準よりもむしろ例外であるべきです。このようなJOINを頻繁にエミュレートする必要がある場合は、データベーススキーマを設計するときにまだリレーショナルすぎると考えているか、データがMongoDBのドキュメントベースのストレージの概念に適していないことを意味します。