MongoDB Array von Objekten mit insert() mit Beispiel
โก Intelligente Zusammenfassung
MongoDB Das Beispiel โArray von Objekten mit insert()โ zeigt, wie man mehrere Dokumente in einem Schritt zu einer Sammlung hinzufรผgt. Es speichert ein Array von Mitarbeiterdatensรคtzen, bettet Arrays in ein Dokument ein und gibt die Ergebnisse รผbersichtlich mit der JSON-Funktion print aus.

Was ist die insert()-Methode in MongoDB?
Die insert()-Methode in MongoDB Fรผgt einer Sammlung ein oder mehrere Dokumente hinzu. Ein Dokument ist eine Menge von Feld-Wert-Paaren, die im BSON-Format (einer binรคren Form von JSON) gespeichert sind. Wird ein einzelnes Dokument รผbergeben, speichert `insert()` genau diesen Datensatz; wird ein Array von Dokumenten รผbergeben, werden alle Dokumente in einem einzigen Vorgang gespeichert, was schneller ist als das Einfรผgen einzelner Dokumente.
Die Methode wird fรผr eine bestimmte Sammlung mit dem Muster db.collection.insert() ausgefรผhrt. Falls die Zielsammlung noch nicht existiert, MongoDB Wird beim ersten Einfรผgen automatisch erstellt. Jedes Dokument erhรคlt auรerdem ein eindeutiges _id-Feld, falls Sie keines angeben, sodass jeder Datensatz spรคter identifiziert werden kann.
Wรคhrend insert() noch funktioniert, ist es neuer. MongoDB Die Versionen bieten `insertOne()` und `insertMany()` als รผbersichtlichere Alternativen. Die folgenden Beispiele verwenden `insert()`, um ein Array von Mitarbeiterdokumenten hinzuzufรผgen und die Ergebnisse anschlieรend in einem lesbaren JSON-Format anzuzeigen.
Hinzufรผgen eines Arrays von Dokumenten
Mit dem Befehl โEinfรผgenโ kรถnnen auch mehrere Dokumente gleichzeitig in eine Sammlung eingefรผgt werden. Das folgende Codebeispiel kann zum gleichzeitigen Einfรผgen mehrerer Dokumente verwendet werden.
Das folgende Beispiel zeigt, wie dies erreicht werden kann.
Schritt 1) Erstellen Sie JavaSkript Variable namens โmyEmployeeโ, um das Array von Dokumenten zu speichern
Schritt 2) Fรผgen Sie der Variablen die erforderlichen Dokumente mit dem Feldnamen und den Werten hinzu
Schritt 3) Verwenden Sie den Befehl insert, um das Array von Dokumenten in die Sammlung einzufรผgen
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Wenn der Befehl erfolgreich ausgefรผhrt wurde, wird die folgende Ausgabe angezeigt
Die Ausgabe zeigt, dass diese drei Dokumente der Sammlung hinzugefรผgt wurden.
Wie man ein Array in ein Dokument einfรผgt
Neben dem Einfรผgen einer Reihe einzelner Dokumente, MongoDB Ermรถglicht das Speichern eines Arrays als Feld innerhalb eines einzelnen Dokuments. Dies ist nรผtzlich, wenn ein Datensatz naturgemรคร eine Liste von Werten enthรคlt, beispielsweise ein Mitarbeiter mit mehreren Fรคhigkeiten oder ein Student, der in mehreren Kursen eingeschrieben ist. Denn MongoDB Es wird ein flexibles Dokumentenmodell verwendet, bei dem sich das Array direkt im Objekt und nicht in einer separaten Tabelle befindet, wodurch zusammengehรถrige Daten beieinander bleiben.
Das folgende Beispiel fรผgt ein Mitarbeiterdokument ein, das ein Array-Feld namens โSkillsโ enthรคlt:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Die einzelnen Teile dieses Dokuments funktionieren wie folgt:
- Mitarbeiter-ID und Mitarbeitername sind gewรถhnliche Feld-Wert-Paare.
- Besondere Qualifikationen ist ein Array-Feld, das drei Zeichenkettenwerte in eckigen Klammern enthรคlt.
- Das gesamte Dokument, einschlieรlich des eingebetteten Arrays, wird in einem einzigen Einfรผgevorgang gespeichert.
Nach dem Hinzufรผgen des Datensatzes kรถnnen Sie das eingebettete Array mit einer Suchabfrage รผberprรผfen, die das Ergebnis im JSON-Format ausgibt:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Die Ausgabe zeigt das Skills-Array, das im Mitarbeiterdokument verschachtelt ist. LaterSie kรถnnen dem Array mit dem Operator `$push` neue Werte hinzufรผgen oder ein einzelnes Element anhand seiner Indexposition lesen. Durch das Speichern zusammenhรคngender Werte auf diese Weise bleibt jedes Dokument in sich abgeschlossen, die Notwendigkeit von Joins zwischen Sammlungen wird reduziert und die Daten werden lesbarer und einfacher zu pflegen.
insert() vs insertOne() vs insertMany()
MongoDB Es werden drei verwandte Methoden zum Hinzufรผgen von Daten bereitgestellt. Die folgende Tabelle vergleicht sie, damit Sie die richtige auswรคhlen kรถnnen:
| Methodik | Zweck | Beispiel |
|---|---|---|
| einfรผgen() | Eine รคltere Methode zum Hinzufรผgen eines einzelnen Dokuments oder eines Arrays von Dokumenten. Sie funktioniert zwar noch, wird aber in neueren Treibern nicht mehr unterstรผtzt. | db.Employee.insert(myEmployee) |
| insertOne() | Fรผgt genau ein Dokument hinzu und gibt dessen eingefรผgte _id zurรผck. Bevorzugt fรผr einzelne Datensรคtze. | db.Employee.insertOne({ โฆ }) |
| insertMany() | Fรผgt in einem einzigen Aufruf ein Array von Dokumenten hinzu und gibt alle eingefรผgten _ids zurรผck. Bevorzugt fรผr Masseneinfรผgungen. | db.Employee.insertMany([ { โฆ }, { โฆ } ]) |
Fรผr neue Projekte sollten Sie `insertOne()` und `insertMany()` verwenden, da diese eine klarere Zielsetzung und eine bessere Fehlerberichterstattung bieten. Die Methode `insert()` bleibt hauptsรคchlich aus Grรผnden der Abwรคrtskompatibilitรคt mit รคlteren Tutorials und Skripten erhalten.
Drucken im JSON-Format
JSON ist ein Format namens JavaSkriptobjektnotation, und ist lediglich eine Mรถglichkeit, Informationen organisiert und leicht lesbar zu speichern. In unseren weiteren Beispielen werden wir die JSON-Druckfunktion verwenden, um die Ausgabe in einem besseren Format anzuzeigen.
Schauen wir uns ein Beispiel fรผr das Drucken im JSON-Format an
db.Employee.find().forEach(printjson)
Code Erlรคuterung:
- Die erste รnderung besteht darin, die Funktion `forEach()` an die Funktion `find()` anzuhรคngen. Dadurch wird sichergestellt, dass jedes Dokument in der Sammlung explizit durchlaufen wird. Auf diese Weise haben Sie mehr Kontrolle darรผber, was Sie mit jedem Dokument in der Sammlung tun kรถnnen.
- Die zweite รnderung besteht darin, den Befehl printjson in die forEach-Anweisung einzufรผgen. Dadurch wird jedes Dokument in der Sammlung im JSON-Format angezeigt.
Wenn der Befehl erfolgreich ausgefรผhrt wurde, wird die folgende Ausgabe angezeigt
Ausgang:
Die Ausgabe zeigt deutlich, dass alle Dokumente im JSON-Stil gedruckt werden.


