MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB – Erstellen Sie ein Dokument

MongoDB stellt insert() bereit Methode (und zwei weitere) zum Hinzufügen von Dokumenten zu einer Datenbank.

MongoDB bietet die folgenden drei Methoden zum Einfügen von Dokumenten in eine Datenbank:

  • insert()
  • insertOne()
  • insertMany()

Das insert() Methode

Das insert() -Methode fügt ein oder mehrere Dokumente in eine Sammlung ein. Jedes Dokument wird als Parameter bereitgestellt. Der Sammlungsname wird insert() vorangestellt Methode.

Hier ist die Syntax zum Einfügen eines einzelnen Dokuments:

db.collectionName.insert({ name: "value" })

Im obigen Beispiel besteht das Dokument aus { name: "value" } . Dies ist ein JSON-Dokument. JSON-Dokumente bestehen aus einem oder mehreren Name/Wert-Paaren, eingeschlossen in geschweiften Klammern {} .

MongoDB verwendet JSON-Dokumente zum Speichern von Daten, deshalb fügen wir Dokumente in diesem Format ein.

Wir haben diese Methode bereits früher verwendet, als wir eine Datenbank erstellt haben.

Lassen Sie uns ein weiteres Dokument zu unserer Datenbank hinzufügen:

db.artists.insert({ artistname: "Jorn Lande" })

Dadurch wird ein Dokument mit { artistname: "Jorn Lande" } eingefügt wie sein Inhalt.

Wenn wir nun die Künstler durchsuchen Sammlung sehen wir zwei Dokumente (einschließlich des zuvor erstellten):

> db.artists.find()
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }

Beachten Sie, dass MongoDB eine _id erstellt hat Feld für die Dokumente. Wenn Sie keine angeben, erstellt MongoDB eine für Sie. Sie können dieses Feld jedoch beim Einfügen bereitstellen, wenn Sie die Kontrolle über den Wert der _id bevorzugen Feld.

db.artists.insert({ _id: 1, artistname: "AC/DC" })

Ergebnis:

> db.artists.find()
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }

Die _id die MongoDB bereitstellt, ist ein 12-Byte-ObjectId-Wert. Es besteht aus den folgenden Werten:

  • ein 4-Byte-Wert, der die Sekunden seit der Unix-Epoche darstellt,
  • eine 3-Byte-Maschinenkennung,
  • eine 2-Byte-Prozess-ID und
  • ein 3-Byte-Zähler, beginnend mit einem zufälligen Wert.

Mehrere Dokumente erstellen

Sie können mehrere Dokumente innerhalb eines einzigen insert() einfügen Methode.

In diesem Beispiel fügen wir drei Dokumente ein:

db.artists.insert(
   [
     { artistname: "The Kooks" },
     { artistname: "Bastille" },
     { artistname: "Gang of Four" }
   ]
)

Beachten Sie, dass die Dokumente als Array bereitgestellt werden. Die Dokumente werden in eckige Klammern eingeschlossen [] , und sie werden durch Kommas getrennt.

Das Ausführen des obigen Codes führt zu folgender Meldung:

BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 3,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})

Eingebettete Dokumente

Ein Dokument kann andere Dokumente, Arrays und Arrays von Dokumenten enthalten.

Sie können auch mehrere Name/Wert-Paare innerhalb eines Dokuments angeben, indem Sie sie durch ein Komma trennen.

db.artists.insert({
    artistname : "Deep Purple",
    albums : [
                {
                    album : "Machine Head",
                    year : 1972,
                    genre : "Rock"
                }, 
                {
                    album : "Stormbringer",
                    year : 1974,
                    genre : "Rock"
                }
            ]
})

Ergebnis:

WriteResult({ "nInserted" : 1 })

Parameter

Das insert() Die Methode akzeptiert die folgenden Parameter.

Parameter Typ Beschreibung
document Dokument oder Array Ein Dokument oder eine Reihe von Dokumenten, die in die Sammlung eingefügt werden sollen (wie in den obigen Beispielen).
writeConcern Dokument Optionaler Parameter. Dies ist ein Dokument, das das Anliegen des Schreibens zum Ausdruck bringt. Ein Schreibproblem beschreibt die Bestätigungsebene, die von MongoDB für Schreibvorgänge in einen eigenständigen Mongod oder in Replikatsätze oder in Sharding-Cluster angefordert wird.
ordered boolesch Optionaler Parameter. Wenn der Wert auf true gesetzt ist , führt MongoDB eine geordnete Einfügung der Dokumente in das Array durch, und wenn bei einem der Dokumente ein Fehler auftritt, kehrt MongoDB zurück, ohne die verbleibenden Dokumente im Array zu verarbeiten.

Wenn der Wert auf false gesetzt ist , führt MongoDB eine ungeordnete Einfügung durch, und wenn bei einem der Dokumente ein Fehler auftritt, werden die verbleibenden Dokumente im Array weiter verarbeitet.

Der insertOne() Methode

Sie können auch insertOne() verwenden Methode zum Einfügen eines einzelnen Dokuments in eine Sammlung:

db.musicians.insertOne({ _id: 1, name: "Ian Gillan", instrument: "Vocals" })

Hier haben wir eine nicht vorhandene Sammlung angegeben. Wie beim insert() -Methode wird die angegebene Sammlung erstellt, falls sie noch nicht existiert.

Sie werden feststellen, dass die Ausgabe anders ist als bei Verwendung von insert() Methode:

{ "acknowledged" : true, "insertedId" : 1 }

Eingebettete Dokumente

Wie bei insert() , können Sie eingebettete Dokumente und Arrays von Dokumenten einfügen:

db.artists.insertOne({
    artistname : "Miles Davis",
    albums : [
                {
                    album : "Kind of Blue",
                    year : 1959,
                    genre : "Jazz"
                }, 
                {
                    album : "Bitches Brew",
                    year : 1970,
                    genre : "Jazz"
                }
            ]
})

Ergebnis:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("578214f048ef8c6b3ffb0159")
}

Der insertMany() Methode

Wie der Name schon sagt, können Sie insertMany() verwenden um mehrere Dokumente einzufügen:

db.musicians.insertMany(
   [
     { _id: 2, name: "Ian Paice", instrument: "Drums", born: 1948 },
     { _id: 3, name: "Roger Glover", instrument: "Bass", born: 1945 },
     { _id: 4, name: "Steve Morse", instrument: "Guitar", born: 1954 },
     { _id: 5, name: "Don Airey", instrument: "Keyboards", born: 1948 },
     { _id: 6, name: "Jeff Martin", instrument: "Vocals", born: 1969 },
     { _id: 7, name: "Jeff Burrows", instrument: "Drums", born: 1968 },
     { _id: 8, name: "Stuart Chatwood", instrument: "Bass", born: 1969 },
   ]
)

Wieder die Ausgabe bei Verwendung von insertMany() ist anders, als wenn Sie mehrere Dokumente mit insert() eingefügt hätten Methode:

{
	"acknowledged" : true,
	"insertedIds" : [
		2,
		3,
		4,
		5,
		6,
		7,
		8
	]
}

Eingebettete Dokumente

db.artists.insertMany(
[
{
    artistname : "Robben Ford",
    albums : [
                {
                    album : "Bringing it Back Home",
                    year : 2013,
                    genre : "Blues"
                }, 
                {
                    album : "Talk to Your Daughter",
                    year : 1988,
                    genre : "Blues"
                }
            ]
}, {
    artistname : "Snoop Dogg",
    albums : [
                {
                    album : "Tha Doggfather",
                    year : 1996,
                    genre : "Rap"
                }, 
                {
                    album : "Reincarnated",
                    year : 2013,
                    genre : "Reggae"
                }
            ]
}
])

Ergebnis:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("578217c248ef8c6b3ffb015a"),
		ObjectId("578217c248ef8c6b3ffb015b")
	]
}