Ajutați dezvoltarea site -ului, împărtășind articolul cu prietenii!

Definiția Mongodb unwind

Operatorul de derulare MongoDB este folosit pentru a deconstrui câmpul matricei de la documentele de intrare la documente de ieșire, acesta va fi folosit pentru fiecare element din document. Diferența dintre documentul de intrare și documentul de ieșire în operatorul derulare este foarte simplă, valoarea documentului de ieșire a unui câmp de matrice este înlocuită cu un singur element din matricea de documente de intrare. Operatorul de derulare MongoDB este folosit practic pentru transferul documentelor complexe în documente simple, va îmbunătăți lizibilitatea și înțelegerea documentelor.Folosind operatorul unwind din MongoDB putem efectua și operațiuni precum gruparea și sortarea datelor.

Sintaxă:

Mai jos este sintaxa operatorului unwind în MongoDB.

1){$destinde:}

2)

{
$unwind:
{
Cale:,
IncludeArrayIndex : ,
PreserveNullEmptyArrays :
}
}

Sintaxa descrierii parametrului operatorului de derulare în MongoDB

1) Operator de derulare -

Acest operator este folosit pentru a deconstrui documentele din MongoDB. Fiecare document de ieșire și de intrare depind unul de celăl alt pentru a deconstrui valoarea. Am trecut parametrul de intrare cu operatorul unwind pentru a afișa rezultatul. Operatorul de desfășurare este folosit cu prefixul $ în timpul utilizării în MongoDB.

2) Calea -

Tipul acestui parametru în operatorul de derulare MongoDB este un șir. Acesta este câmpul de cale al unui tablou, calea este folosită pentru a specifica calea documentelor. Acesta este un parametru obligatoriu atunci când utilizați operatorul unwind în MongoDB.

3) IncludeArrayIndex -

Acesta este un parametru opțional în timpul utilizării operatorului de derulare în MongoDB. Tipul acestui parametru în operatorul de derulare MongoDB este un șir. Aceasta afirmă că noul nume al unui câmp este folosit pentru a deține matricea de index pentru element. Numele acestui parametru nu începe cu semnul $.

4) PreserveNullEmptyArrays -

Tipul acestui parametru în operatorul de derulare MongoDB este boolean. PreserveNullEmptyArrays este un parametru opțional în timpul utilizării operatorului unwind în MongoDB. Dacă calea acestui parametru conține valoarea adevărată, operatorul unwind va afișa rezultatul, dacă calea acestui parametru conține valoarea falsă, operatorul unwind nu va afișa rezultatul.

Cum funcționează relaxarea în Mongodb?

Operatorul de derulare MongoDB va deconstrui documentele pentru fiecare document. Operatorul de desfășurare funcționează practic pe elemente de matrice. Putem folosi și documente încorporate cu operatori de derulare.

Presupun că matricea noastră conține nota de student ABC ca {50, 55, 60, 70, 75}. Operatorul de derulare va returna rezultatul ca mai jos.

{Nume: „ABC”, nota: 50}
{Nume: „ABC”, marcaj: 55}
{Nume: „ABC”, marcaj: 60}
{Nume: „ABC”, marcaj: 70}
{Nume: „ABC”, marcaj: 75}

Ieșirea de mai sus arată că matricea va fi deconstruită în mai multe documente. Matricea noastră conține valoarea unui singur document, dar putem vedea că rezultatul va afișa mai multe documente din ea.

Putem transmite parametrul includeArrayIndex și preserveNullEmptyArrays în timp ce folosim operatorul unwind în MongoDB. Ambii parametri sunt opționali atunci când utilizați operatorul de derulare.

Operatorul Unwind va duplica fiecare element de matrice în documente diferite. Acesta este utilizat într-o matrice care conține date precum o lună, o zi a săptămânii și un an.

Operatorul Unwind lucrează și cu câmpul de cale non-matrice. Înainte de versiunea 3.2 a MongoDB, dacă am folosit un câmp de cale non-matrice, va afișa o eroare. După versiunea 3.4, fiecare câmp de cale non-matrice nu va afișa nicio eroare, ci va returna elemente individuale ale unei matrice.

În exemplul de mai jos, am folosit câmpul de cale non-matrice ca nume. După utilizarea câmpului cale non-matrice, elementul de matrice va prelua un singur document.

Cod:

"db.MongoDB_Update.aggregate (({$unwind: $name}))"
db.MongoDB_Update.find ()

Figură - Operatorul de derulare funcționează cu un câmp de cale fără matrice în MongoDB.

Dacă am omis vreo valoare din cale, operatorul unwind nu va genera nicio ieșire dacă am introdus o valoare incorectă.

Cod:

"db.MongoDB_Update.aggregate (({$unwind: $id}))"
db.MongoDB_Update.find ()

Figură - operatorul de derulare nu va genera nicio ieșire dacă am introdus vreo valoare incorectă.

În exemplul de mai sus, am folosit câmpul id în operatorul unwind, dar câmpul id nu este prezent în colecția MongoDB_Update. Deci operatorul de derulare va returna rezultatul gol în ieșire.

Exemplu

Exemplul de mai jos arată operatorul de derulare în MongoDB.

1) Operator de derulare cu câmp matrice -

În exemplul de mai jos, am folosit numele câmpului matricei ca lap_storage. După ce folosim câmpul matrice, putem vedea că rezultatul va afișa fiecare document cu un câmp diferit.

Lap_storage conține cele 6 elemente ale matricei, iar colecția MongoDB_Update conține cele 2 documente, așa că putem vedea că operatorul unwind afișează rezultatul ca 12 documente.

"db.MongoDB_Update.aggregate (({$unwind: $lap_storage}))"
db.MongoDB_Update.find ()

Figură - Exemplu de operator de derulare cu câmp matrice.

2) Operator de derulare cu parametrul includeArrayIndex -

În exemplul de mai jos, am folosit parametrul includeArrayIndex cu operatorul unwind. Am folosit numele câmpului matrice ca lap_storage și includem câmpulArrayIndex ca MongoDBIndex.

MongoIndex este un câmp definit de utilizator care a fost folosit pentru a captura indexul matricei din câmpul lap_storage.

Cod:

db.MongoDB_Update.find ()
"db.MongoDB_Update.aggregate (({$unwind: {path: $lap_storage, includeArrayIndex: MongoDBIndex}}))"

Figură - Exemplu de operator Unwind cu parametrul includeArrayIndex.

3) Operatorul de derulare cu parametrul preserveNullEmptyArrays cu valoare adevărată -

În exemplul de mai jos, am folosit parametrul preserveNullEmptyArrays cu operatorul unwind. Am folosit numele câmpului matricei ca lap_storage și preserveNullEmptyArrays valoarea parametrului ca adevărat.

Cod:

"db.MongoDB_Update.aggregate (({$unwind: {path: $lap_storage, preserveNullAndEmptyArrays: true}}))"
db.MongoDB_Update.find ()

Figură - Exemplu de operator Unwind cu parametrul preserveNullEmptyArrays cu valoarea adevărată

4) Operatorul de derulare cu parametrul preserveNullEmptyArrays cu valoare falsă -

În exemplul de mai jos, am folosit parametrul preserveNullEmptyArrays cu operatorul unwind. Am folosit numele câmpului matricei ca lap_storage și preserveNullEmptyArrays valoarea parametrului ca fals.

Cod:

"db.MongoDB_Update.aggregate (({$unwind: {path: $lap_storage, preserveNullAndEmptyArrays: false}}))"
db.MongoDB_Update.find ()

Figură - Exemplu de operator Unwind cu parametrul preserveNullEmptyArrays cu valoare falsă.

5) Operatorul de derulare folosind documente încorporate -

Exemplul de mai jos arată acel operator de derulare folosind documente încorporate. Am încorporat numele câmpului documentului ca lap_spec.

De asemenea, am folosit parametrul preserveNullEmptyArrays cu operatorul unwind. Am setat valoarea parametrului preserveNullEmptyArrays ca adevărat.

Cod:

"db.MongoDB_Update.aggregate (({$unwind: {cale: $lap_spec, preserveNullAndEmptyArrays: true}})).pretty ()"
db.MongoDB_Update.find ()

Figură - Exemplu de operator de derulare folosind documente încorporate în MongoDB.

Concluzie

Operatorul Unwind este foarte util și important în MongoDB pentru a deconstrui câmpul matricei. Folosim parametrul opțional preserveNullEmptyArrays și includeArrayIndex în timp ce folosim operatorul unwind. Putem folosi și documente încorporate cu operatori de derulare. Putem transfera documente complexe în documente simple utilizând operatorul unwind în MongoDB.

Ajutați dezvoltarea site -ului, împărtășind articolul cu prietenii!