végezze el a belső csatlakozást a MongoDB-ben a $lookup aggregation operator segítségével

a MongoDB-ben 3.2 bevezette a $lookup operátort az aggregation framework-ben, amely felhasználható a bal csatlakozás végrehajtására.
kérjük, vegye figyelembe, hogy MongoDB adatok működése nem olyan, mint
működési adatok relációs adatbázisban, ezért mindig tanácsos, hogy a releváns adatokat, hogy ugyanabban a dokumentumban
azok gyakran használják együtt. De egy bizonyos esetben két különböző gyűjteményt kell elhelyezni a különböző
like miatt, hogy elkerüljük az adatok megkettőzését, amelyekre nehéz frissítési műveleteink vannak, több gyűjteményben használjuk stb.

JOIN az egyik legfontosabb különbség az SQL és a NoSQL adatbázis között, ahol a MongoDB Aggregation $lookup
operátor hasznos és hatékony ahhoz, hogy csatlakozzon két gyűjteményhez, mint például az RDBMS-ben.

 MongoDB Aggregation

nézzük tovább:

szintaxis:

Tudjon meg többet a MEAN Stack
Development

ha az RDBMS világból érkezik, akkor ezt külön dokumentum linkként várhatja el a helyi
és a külföldi gyűjtemény összes mezője, de nem, az összes külföldi dokumentum hozzáadódik a helyi gyűjtemény dokumentum tömbjeként. Mivel az összes
külföldi dokumentum bekerül a dokumentumba, érdemes csak akkor használni, ha a külföldi relatív dokumentumok száma
korlátozott, és az eredménydokumentum mérete nem haladja meg a dokumentum méretkorlátját.

volt:

tegyük fel, hogy van két gyűjtemény ‘megrendelés’ és ‘termék’ a következő adatokkal.

rendelés:

termékek:

most letölteni érdekében a termék részletes tudjuk használni az alábbi

eredmény dokumentumok:

normális esetben a rendelés több elemet is tartalmazhat, nézzük meg, hogyan hajthat végre $keresést a tömb elemen belül.

változtassuk meg a rendelések gyűjteményét az alábbiak szerint

ebben az esetben a rendelési elemek tömbben vannak, amelyek
szükségesek a $unwind operátor használatával, amely külön
dokumentumot hoz létre elemenként, majd elvégezheti a keresést. Script tűnhet alább.

eredmény:

előfordulhat, hogy nem szeretné használni a $lookup operátort, hogy egy adott termékre vonatkozó összes megrendelést más word join orders on
termékben kapjon. Abban az esetben, legkelendőbb termék lehet, hogy több ezer érdekében, és az összes hozzáadott belül egyetlen tömb okozhat
dokumentum méretkorlátozás tömb.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

More: