我在 2 个单独的数据库上有 2 个集合。两者都存储一个数组字段。我计划同时查询两者,以便:
所有在其数组字段中具有元素 [A,B] 及其 _id 的集合 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 呢?
谢谢你的帮助。