Esegui INNER JOIN in MongoDB usando operator lookup aggregation operator

In MongoDB 3.2 ha introdotto operator lookup operator in aggregation framework che può essere utilizzato per eseguire LEFT JOIN.
Si noti che l’operazione dei dati MongoDB non è come
i dati operativi nel database relazionale, quindi è sempre consigliabile avere dati rilevanti all’interno dello stesso documento
quelli che spesso usano insieme. Ma in un certo caso, è necessario inserire due raccolte diverse a causa di vari
come, per evitare la duplicazione dei dati per i quali abbiamo pesanti operazioni di aggiornamento, utilizzo in più raccolte ecc.

JOIN è una delle principali differenze tra database SQL e NoSQL dove come aggregazione MongoDB operator lookup
l’operatore è utile e potente per ottenere JOIN per due raccolte come farlo in RDBMS.

 Aggregazione MongoDB

Vediamo oltre:

Sintassi:

Scopri di più su MEAN Stack
Development

Se vieni dal mondo RDBMS, potresti aspettarti questo come documento separato collega tutti i campi dalla raccolta locale
e straniera ma NO, tutti i documenti stranieri verranno aggiunti come una serie di documenti di raccolta locale. Dal momento che tutti
documento straniero aggiunto all’interno del documento si consiglia di utilizzare solo se un numero di documenti relativi stranieri sono
limitata e non fare la dimensione del documento risultato di superare il limite di dimensione del documento.

Ex:

Diciamo che abbiamo due collezioni “ordini” e “prodotto” con i seguenti dati.

Ordini:

Prodotti:

Ora per recuperare l’ordine con il dettaglio del prodotto si può usare sotto

documenti Risultato:

Normalmente, ordine contiene più elementi, andiamo a vedere come è possibile eseguire $di ricerca all’interno dell’elemento di matrice.

Cambiamo le collezioni degli ordini per apparire come di seguito

In questo caso gli elementi dell’ordine sono in array che
è necessario per lo svolgimento utilizzando l’operatore unwind unwind che creerà un documento
separato per elemento e quindi è possibile eseguire la ricerca. Script può essere simile al di sotto.

Risultato:

Potresti non voler utilizzare operator lookup operator per ottenere tutti gli ordini per un particolare prodotto in altri ordini di join di word su
prodotto. In caso di prodotto più venduto potremmo avere migliaia di ordini e tutti aggiunti all’interno di un singolo array potrebbero causare
array limite di dimensioni del documento.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

More: