MongoDB Array av objekt som använder insert() med Exempel
⚡ Smart sammanfattning
MongoDB En array av objekt med hjälp av insert() visar hur man lägger till flera dokument i en samling i en enda operation. Den lagrar en array av medarbetarregister, bäddar in arrayer i ett dokument och visar resultaten snyggt med hjälp av JSON-utskriftsfunktionen.

Vad är insert()-metoden i MongoDB?
Metoden insert() i MongoDB lägger till ett eller flera dokument i en samling. Ett dokument är en uppsättning fält-och-värde-par som lagras i BSON, en binär form av JSON. När du skickar ett enskilt dokument lagrar insert() den posten; när du skickar en array av dokument lagras alla i en enda operation, vilket är snabbare än att infoga dem ett i taget.
Metoden körs mot en specifik samling med hjälp av mönstret db.collection.insert(). Om målsamlingen inte redan finns, MongoDB skapar den automatiskt vid första infogningen. Varje dokument får också ett unikt _id-fält om du inte anger ett, så att varje post kan identifieras senare.
Även om insert() fortfarande fungerar, nyare MongoDB versioner tillhandahåller insertOne() och insertMany() som tydligare ersättningar. Exemplen nedan använder insert() för att lägga till en array av medarbetardokument och sedan visa resultaten i ett läsbart JSON-format.
Lägga till en matris med dokument
Kommandot "insert" kan också användas för att infoga flera dokument i en samling samtidigt. Kodexemplet nedan kan användas för att infoga flera dokument samtidigt.
Följande exempel visar hur detta kan göras,
Steg 1) Skapa en JavaScript variabel som kallas myEmployee för att hålla mängden dokument
Steg 2) Lägg till de obligatoriska dokumenten med fältnamnet och värden till variabeln
Steg 3) Använd kommandot infoga för att infoga mängden dokument i samlingen
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Om kommandot utförs framgångsrikt kommer följande utdata att visas
Resultatet visar att dessa tre dokument lades till samlingen.
Så här infogar du en array i ett dokument
Förutom att infoga en rad separata dokument, MongoDB låter dig lagra en array som ett fält i ett enda dokument. Detta är användbart när en post naturligt innehåller en lista med värden, till exempel en anställd som har flera färdigheter eller en student som är inskriven i flera kurser. Eftersom MongoDB använder en flexibel dokumentmodell, arrayen finns direkt inuti objektet snarare än i en separat tabell, vilket håller ihop relaterad data.
Följande exempel infogar ett medarbetardokument som innehåller ett arrayfält som heter Färdigheter:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Delarna i detta dokument fungerar enligt följande:
- Anställd-ID och Anställd Namn är vanliga fält-och-värde-par.
- färdigheter är ett arrayfält som innehåller tre strängvärden inom hakparenteser.
- Hela dokumentet, inklusive den inbäddade arrayen, lagras i en enda infogningsoperation.
Efter att du har lagt till posten kan du bekräfta den inbäddade arrayen med en find-fråga som skriver ut resultatet i JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Utdata visar kompetensmatrisen kapslad i medarbetardokumentet. Later, kan du lägga till nya värden i arrayen med operatorn $push, eller läsa ett enskilt element efter dess indexposition. Att lagra kopplade värden på det här sättet håller varje dokument fristående, minskar behovet av kopplingar mellan samlingar och gör data enklare att läsa och underhålla.
insert() kontra insertOne() kontra insertMany()
MongoDB tillhandahåller tre relaterade metoder för att lägga till data. Tabellen nedan jämför dem så att du kan välja rätt:
| Metod | Syfte | Exempelvis |
|---|---|---|
| Föra in() | Äldre metod som lägger till ett enskilt dokument eller en matris med dokument. Den fungerar fortfarande men är föråldrad i nyare drivrutiner. | db.Medarbetare.insert(minMedarbetare) |
| insertOne() | Lägger till exakt ett dokument och returnerar dess infogade _id. Föredras för enskilda poster. | db.Employee.infogaEn({ … }) |
| insertMany() | Lägger till en array av dokument i ett anrop och returnerar alla infogade _ids. Föredras för bulkinfogningar. | db.Employee.insertMany([ { … }, { … } ]) |
För nya projekt, använd insertOne() och insertMany() eftersom de ger tydligare avsikt och bättre felrapportering. Metoden insert() är fortfarande tillgänglig främst för bakåtkompatibilitet med äldre handledningar och skript.
Utskrift i JSON-format
JSON är ett format som kallas JavaSkriptobjektnotation, och är bara ett sätt att lagra information på ett organiserat, lättläst sätt. I våra ytterligare exempel kommer vi att använda JSON-utskriftsfunktionen för att se utdata i ett bättre format.
Låt oss titta på ett exempel på utskrift i JSON-format
db.Employee.find().forEach(printjson)
Code Förklaring:
- Den första ändringen är att lägga till funktionen forEach() i find()-funktionen. Detta säkerställer att varje dokument i samlingen går igenom explicit. På så sätt har du mer kontroll över vad du kan göra med vart och ett av dokumenten i samlingen.
- Den andra ändringen är att lägga kommandot printjson till forEach-satsen. Detta gör att varje dokument i samlingen visas i JSON-format.
Om kommandot utförs framgångsrikt kommer följande utdata att visas
Produktion:
Utdata visar tydligt att alla dokument är utskrivna i JSON-stil.


