Този отговор е остарял. От версия 3.2 MongoDB има ограничена поддръжка за леви външни присъединявания с оператора за агрегиране $lookup
MongoDB не прави заявки, които обхващат множество колекции - точка. Когато трябва да обедините данни от множество колекции, трябва да го направите на ниво приложение, като направите множество заявки.
- Колекция от заявки A
- Вземете вторичните ключове от резултата и ги поставете в масив
- Колекция от заявки B, предаваща този масив като стойност на $in-оператора
- Присъединете резултатите от двете заявки програмно на слоя на приложението
Това трябва да бъде по-скоро изключение, отколкото норма. Когато често ви се налага да емулирате JOIN по този начин, това или означава, че все още мислите твърде релационно, когато проектирате схемата на вашата база данни, или че вашите данни просто не са подходящи за концепцията за съхранение, базирана на документи на MongoDB.