utför inre gå med i MongoDB med $lookup aggregation operator

i MongoDB 3.2 har introducerat $lookup operator i aggregation framework som kan användas för att utföra LEFT JOIN.
Observera att MongoDB data operation är inte som
driftsdata i relationsdatabas så det är alltid lämpligt att ha relevanta data för att vara inom samma dokument
de som ofta använder tillsammans. Men i ett visst fall är det nödvändigt att lägga in två olika samlingar på grund av olika
som, för att undvika dataduplikering för vilka vi har tunga uppdateringsoperationer, användning i flera samlingar etc.

JOIN är en av de viktigaste skillnaderna mellan SQL och NoSQL databas där som MongoDB Aggregation $lookup
operatör är hjälpsam och kraftfull för att få gå med i två samlingar som att göra det i RDBMS.

MongoDB Aggregation

Låt oss se vidare:

Syntax:

Läs mer om MEAN Stack
utveckling

om du kommer från RDBMS world kan du förvänta dig detta som separat dokumentlänk alla fält från den lokala
och utländsk samling men nej, alla utländska dokument kommer att läggas till som en rad lokala samlingsdokument. Eftersom alla
utländska dokument som läggs till i dokumentet kanske du bara vill använda om ett antal utländska relativa dokument är
begränsade och inte gör storleken på resultatdokumentet för att överskrida dokumentstorleksgränsen.

Ex:

låt oss säga ha två samlingar ’order’ och ’produkt’ med följande data.

beställningar:

produkter:

nu för att hämta order med produktdetaljer kan vi använda nedan

resultat dokument:

normalt innehåller order may flera objekt, låt oss se hur du kan utföra $lookup inom array element.

Låt oss ändra ordersamlingar så att de ser ut nedan

i det här fallet är orderposter i array som
krävs för att varva ner med $ unwind operator som skapar separat
– dokument per objekt och sedan kan du utföra sökning. Script kan se ut nedan.

resultat:

du kanske inte vill använda $lookup operator för att få alla beställningar för en viss produkt i andra word join orders på
produkt. Vid bästsäljande produkt kan vi ha tusentals order och alla tillagda inom en array kan orsaka
document size limit array.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: