2 つの別々の DB に 2 つのコレクションがあります。どちらも配列フィールドを格納します。次のように、両方を一度にクエリする予定です。
配列フィールドに要素 [A,B] と _ids を持つすべてのコレクション 1 ドキュメントは、特定のドキュメント _id を持つコレクション 2 の配列フィールドに存在します。
例として:
ドキュメント (コレクション 1、DB 1):
[{"_id":ObjectId("doc1"), "array1":["A","B"]}, {"_id":ObjectId("doc2"), "array1":["A","C"]}]
user_docs (コレクション 2、DB 2):
[{"_id":ObjectId("usr1"), "array2": [ObjectId("doc1"),ObjectId("foo")]}, {"_id":ObjectId("usr2"), "array2": [ObjectId("bar"),ObjectId("baz")]}]
A、B および usr1 を指定すると、「doc1」オブジェクトを返すクエリが必要です (array1 フィールドに A、B があり、usr1 の array2 フィールドにあるため)。
私は明らかに、あるクエリで A,B を持つすべてのドキュメントを取得し、別のクエリで usr1 のすべてのドキュメントを取得して、アプリケーション レベルで共通要素を見つけることができますが、MongoDB を使用してそれを行うより良い方法はありますか?
ご協力いただきありがとうございます。