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.

  • 📥 Beilage: Die Methode insert() fügt ein Array von Dokumenten in einer einzigen, effizienten Operation zu einer Sammlung hinzu.
  • 🧾 Dokumentenmodell: Jedes Dokument ist eine Menge von Feld-Wert-Paaren, und MongoDB Fügt automatisch eine eindeutige _id hinzu.
  • 🗂️ Eingebettete Arrays: Ein Array kann auch als Feld innerhalb eines Dokuments existieren, keeping Zusammengehörige Werte.
  • 🔁 Moderne Methoden: insertOne() und insertMany() sind die aktuellen, übersichtlicheren Nachfolger der alten insert()-Methode.
  • Readable Ausgang: Der Befehl forEach(printjson) gibt jedes Dokument in einem übersichtlichen, leicht lesbaren JSON-Format 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

MongoDB Array von Objekten mit insert()

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:

  1. 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.
  2. 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:

Drucken im JSON-Format

Die Ausgabe zeigt deutlich, dass alle Dokumente im JSON-Stil gedruckt werden.

Häufig gestellte Fragen

Ja. Wenn Sie ein Array von Dokumenten an `insert()` übergeben, fügen Sie alle Dokumente in einem einzigen Vorgang hinzu. Dieses Einfügen mehrerer Dokumente gleichzeitig ist schneller als der separate Aufruf von `insert()` für jedes Dokument, obwohl `insertMany()` mittlerweile die bevorzugte Methode ist.

Ja. Wenn ein Dokument kein _id-Feld enthält, MongoDB Beim Einfügen wird automatisch eine eindeutige ObjectId generiert, sodass jeder gespeicherte Datensatz später identifiziert und abgerufen werden kann.

Standardmäßig MongoDB Fügt Dokumente in der angegebenen Reihenfolge ein und stoppt beim ersten Fehler; die restlichen Dokumente bleiben ungefüget. Wird die Option „Ordered“ auf „False“ gesetzt, wird der Vorgang trotz Fehlern fortgesetzt.

Ja. KI-Tools können eine Klartextbeschreibung Ihrer Daten in `insertOne()`- oder `insertMany()`-Anweisungen umwandeln, einschließlich eingebetteter Arrays. Überprüfen Sie immer die generierten Felder und Datentypen, bevor Sie sie auf eine Datenbank anwenden.

KI kann anhand Ihrer Abfragemuster vorschlagen, ob Arrays in ein Dokument eingebettet oder auf separate Sammlungen verwiesen werden sollen. Dies hilft Anfängern, Daten effizient zu modellieren und gleichzeitig unnötige Duplikate oder zu tiefe Verschachtelungen zu vermeiden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: