2 개의 별도 DB에 2 개의 콜렉션이 있습니다. 둘 다 배열 필드를 저장합니다.MongoDB : 배열이있는 중첩 쿼리 및 성능입니다.
:요소 [A, B] 자신의 배열 분야에서 자신의 _ids이 특정 문서 _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'객체를 반환합니다. 왜냐하면 A, B가 array1 필드에 있고 usr1이 array2 필드에 있기 때문입니다.
A, B가 하나의 쿼리에 있고 모든 usr1의 문서가 다른 쿼리에있는 모든 문서를 가져올 수 있으며 응용 프로그램 수준에서 공통 요소를 찾을 수 있지만 MongoDB를 사용하여 더 나은 방법이 있습니까?
도움 주셔서 감사합니다.