în MongoDB 3.2 a introdus operatorul $lookup în cadrul de agregare care poate fi utilizat pentru a efectua asocierea stângă.
vă rugăm să rețineți că operațiunea de date MongoDB nu este ca
date de operare în baza de date relațională, astfel încât este întotdeauna recomandabil să aibă date relevante pentru a fi în același document
cei care folosesc adesea împreună. Dar, într-un anumit caz, este necesar să se pună în două colecții diferite din cauza diferitelor
cum ar fi, pentru a evita duplicarea datelor pentru care avem operațiuni de actualizare grele, utilizarea în mai multe colecții etc.
Alăturați-vă este una dintre diferențele cheie dintre baza de date SQL și NoSQL, unde Operatorul MongoDB Aggregation $lookup
este util și puternic pentru a obține Alăturați-vă pentru două colecții, cum ar fi să o faceți în RDBMS.
să vedem mai departe:
sintaxă:
Aflați mai multe despre stiva medie
dezvoltare
dacă veniți din lumea RDBMS, este posibil să vă așteptați la acest lucru ca document separat conectați toate câmpurile din colecția locală
și străină, dar nu, toate documentele străine vor fi adăugate ca o serie de documente de colecție locală. Deoarece toate
document străin adăugat în interiorul documentului poate doriți să utilizați numai dacă un număr de documente relative străine sunt
limitate și nu face dimensiunea documentului rezultat să depășească limita de dimensiune a documentului.
Ex:
să presupunem că avem două colecții ‘comenzi’ și ‘produs’ cu următoarele date.
comenzi:
produse:
acum, pentru a prelua comanda cu detalii despre produs, putem folosi mai jos
documente rezultate:
în mod normal, comanda poate conține mai multe elemente, să vedem cum puteți efectua $lookup în elementul array.
să schimbăm colecțiile de comenzi pentru a arăta mai jos
în acest caz, elementele de comandă sunt în matrice care
necesare pentru a vă relaxa folosind $desfaceți operatorul care va crea separat
document per element și apoi puteți efectua căutare. Script-ul poate arata ca mai jos.
rezultat:
este posibil să nu doriți să utilizați $lookup operator pentru a obține toate comenzile pentru un anumit produs în alte comenzi word join pe
produs. În cazul celui mai bine vândut produs, am putea avea mii de comenzi și toate adăugate într-o singură matrice pot provoca
dimensiunea documentului matrice limită.