I MongoDB 3.2 har introdusert $lookup operator i aggregation framework som kan benyttes til å utføre LEFT JOIN.
Vær oppmerksom på At MongoDB dataoperasjon ikke er som
driftsdata i relasjonsdatabase, så det er alltid tilrådelig å ha relevante data for å være innenfor samme dokument
de som ofte bruker sammen. Men i et bestemt tilfelle er det nødvendig å sette inn to forskjellige samlinger på grunn av ulike
som, for å unngå data duplisering som vi har tunge oppdateringsoperasjoner, bruk i flere samlinger etc.
JOIN er en av hovedforskjellen MELLOM SQL og NoSQL database der Som MongoDB Aggregation $lookup
operatør er nyttig og kraftig for å BLI MED i to samlinger som å gjøre det i RDBMS.
La oss se videre:
Syntaks:
Lær mer Om MEAN Stack
Utvikling
hvis du kommer Fra RDBMS verden så kan du forvente dette som separat dokument link alle felt fra den lokale
og utenlandsk samling, men NEI, alle utenlandske dokumenter vil bli lagt til som en rekke lokale samling dokument. Siden alle
utenlandske dokumenter lagt inn i dokumentet kan det være lurt å bruke bare hvis et antall utenlandske relative dokumenter er
begrenset og ikke gjør størrelsen på resultatdokumentet til å overskride dokumentstørrelsesgrensen.
Eks:
La oss si ha to samlinger ‘bestillinger’ og ‘produkt’ med følgende data.
Bestillinger:
Produkter:
nå for å hente ordre med produktdetaljer kan vi bruke nedenfor
Resultat dokumenter:
normalt kan bestillingen inneholde flere elementer, la oss se hvordan du kan utføre $lookup innen array element.
La oss endre ordreinnsamlinger for å se ut nedenfor
i dette tilfellet er ordreelementer i array som
kreves for å slappe av med $unwind operator som vil skape separat
dokument per element, og deretter kan du utføre oppslag. Skriptet kan se ut som nedenfor.
Resultat:
Du vil kanskje ikke bruke $ lookup operator for å få alle bestillinger for et bestemt produkt i andre word join orders på
produkt. Ved bestselgende produkt kan vi ha tusenvis ordre og alt lagt til i enkelt array kan forårsake
dokumentstørrelsesgrense array.