MongoDB Array af objekter ved hjælp af insert() med Eksempel
⚡ Smart opsummering
MongoDB Et array af objekter ved hjælp af insert() viser, hvordan man tilføjer flere dokumenter til en samling i én operation. Det gemmer et array af medarbejderposter, integrerer arrays i et dokument og viser resultaterne pænt ved hjælp af JSON-printfunktionen.

Hvad er insert()-metoden i MongoDB?
insert()-metoden i MongoDB tilføjer et eller flere dokumenter til en samling. Et dokument er et sæt af felt-og-værdi-par gemt i BSON, en binær form af JSON. Når du sender et enkelt dokument, gemmer insert() den ene post; når du sender et array af dokumenter, gemmer den dem alle i en enkelt operation, hvilket er hurtigere end at indsætte dem én efter én.
Metoden køres mod en specifik samling ved hjælp af mønsteret db.collection.insert(). Hvis målsamlingen ikke findes endnu, MongoDB opretter den automatisk under den første indsættelse. Hvert dokument modtager også et unikt _id-felt, hvis du ikke angiver et, så hver post kan identificeres senere.
Selvom insert() stadig virker, er nyere MongoDB Versionerne tilbyder insertOne() og insertMany() som tydeligere erstatninger. Eksemplerne nedenfor bruger insert() til at tilføje et array af medarbejderdokumenter og derefter vise resultaterne i et læsbart JSON-format.
Tilføjelse af en række dokumenter
Kommandoen "indsæt" kan også bruges til at indsætte flere dokumenter i en samling på én gang. Nedenstående kodeeksempel kan bruges til at indsætte flere dokumenter ad gangen.
Følgende eksempel viser, hvordan dette kan gøres,
Trin 1) Opret en JavaScript variabel kaldet myEmployee til at holde rækken af dokumenter
Trin 2) Tilføj de nødvendige dokumenter med feltnavnet og værdierne til variablen
Trin 3) Brug kommandoen indsæt til at indsætte rækken af dokumenter i samlingen
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Hvis kommandoen udføres med succes, vil følgende output blive vist
Outputtet viser, at disse 3 dokumenter blev føjet til samlingen.
Sådan indsætter du et array i et dokument
Udover at indsætte en række separate dokumenter, MongoDB lader dig gemme et array som et felt i et enkelt dokument. Dette er nyttigt, når én post naturligt indeholder en liste over værdier, f.eks. en medarbejder, der har flere færdigheder, eller en studerende, der er tilmeldt flere kurser. MongoDB bruger en fleksibel dokumentmodel, ligger arrayet direkte inde i objektet i stedet for i en separat tabel, hvilket holder relaterede data sammen.
Følgende eksempel indsætter et medarbejderdokument, der indeholder et arrayfelt kaldet Færdigheder:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Delene i dette dokument fungerer som følger:
- Medarbejder-id og Medarbejdernavn er almindelige felt-og-værdi-par.
- Skills er et arrayfelt, der indeholder tre strengværdier i firkantede parenteser.
- Hele dokumentet, inklusive det integrerede array, gemmes i en enkelt indsættelsesoperation.
Når du har tilføjet posten, kan du bekræfte det integrerede array med en find-forespørgsel, der udskriver resultatet i JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Outputtet viser færdighedsmatrixen indlejret i medarbejderdokumentet. Later, kan du tilføje nye værdier til arrayet med $push-operatoren eller læse et enkelt element ud fra dets indeksposition. Lagring af forbundne værdier på denne måde holder hvert dokument selvstændigt, reducerer behovet for joins på tværs af samlinger og gør dataene nemmere at læse og vedligeholde.
insert() vs. insertOne() vs. insertMany()
MongoDB indeholder tre relaterede metoder til at tilføje data. Tabellen nedenfor sammenligner dem, så du kan vælge den rigtige:
| Metode | Formål | Eksempel |
|---|---|---|
| indsæt () | Ældre metode, der tilføjer et enkelt dokument eller en række dokumenter. Den fungerer stadig, men er udfaset i nyere drivere. | db.Medarbejder.indsæt(minMedarbejder) |
| indsætEn() | Tilføjer præcis ét dokument og returnerer dets indsatte _id. Foretrækkes til enkelte poster. | db.Medarbejder.indsætEn({ … }) |
| indsætMange() | Tilføjer en række dokumenter i ét kald og returnerer alle indsatte _id'er. Foretrækkes til masseindsættelser. | db.Medarbejder.indsætMange([ { … }, { … } ]) |
Brug insertOne() og insertMany() til nye projekter, fordi de giver en klarere intention og bedre fejlrapportering. Insert()-metoden er fortsat primært tilgængelig for bagudkompatibilitet med ældre tutorials og scripts.
Udskrivning i JSON-format
JSON er et format kaldet JavaScriptobjektnotation, og er blot en måde at gemme information på en organiseret, letlæselig måde. I vores yderligere eksempler vil vi bruge JSON-udskrivningsfunktionaliteten til at se outputtet i et bedre format.
Lad os se på et eksempel på udskrivning i JSON-format
db.Employee.find().forEach(printjson)
Code Forklaring:
- Den første ændring er at tilføje funktionen kaldet forEach() til find()-funktionen. Dette sørger for eksplicit at gennemgå hvert dokument i samlingen. På denne måde har du mere kontrol over, hvad du kan gøre med hvert af dokumenterne i samlingen.
- Den anden ændring er at sætte printjson-kommandoen til forEach-sætningen. Dette vil få hvert dokument i samlingen til at blive vist i JSON-format.
Hvis kommandoen udføres med succes, vil følgende output blive vist
Output:
Outputtet viser tydeligt, at alle dokumenter er udskrevet i JSON-stil.


