MongoDB udostępnia funkcję insert() metoda (i dwie inne) do dodawania dokumentów do bazy danych.
MongoDB udostępnia następujące trzy metody wstawiania dokumentów do bazy danych:
insert()insertOne()insertMany()
insert() Metoda
insert() Metoda wstawia jeden lub więcej dokumentów do kolekcji. Każdy dokument jest podawany jako parametr. Nazwa kolekcji jest poprzedzona insert() metoda.
Oto składnia wstawiania pojedynczego dokumentu:
db.collectionName.insert({ name: "value" })
W powyższym przykładzie dokument składa się z { name: "value" } . To jest dokument JSON. Dokumenty JSON składają się z jednej lub więcej par nazwa/wartość, ujętych w nawiasy klamrowe {} .
MongoDB używa dokumentów JSON do przechowywania danych, dlatego wstawiamy dokumenty w tym formacie.
Używaliśmy tej metody już wcześniej, kiedy tworzyliśmy bazę danych.
Dodajmy kolejny dokument do naszej bazy danych:
db.artists.insert({ artistname: "Jorn Lande" })
Spowoduje to wstawienie dokumentu z { artistname: "Jorn Lande" } jako jego zawartość.
Teraz, jeśli przeszukamy artystów kolekcji, zobaczymy dwa dokumenty (w tym ten, który stworzyliśmy wcześniej):
> db.artists.find()
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
Zauważ, że MongoDB utworzył _id pole na dokumenty. Jeśli go nie określisz, MongoDB utworzy go dla Ciebie. Możesz jednak podać to pole podczas wstawiania, jeśli wolisz mieć kontrolę nad wartością _id pole.
db.artists.insert({ _id: 1, artistname: "AC/DC" }) Wynik:
> db.artists.find()
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
_id podana przez MongoDB to 12-bajtowa wartość ObjectId. Składa się z następujących wartości;
- 4-bajtowa wartość reprezentująca sekundy od epoki Uniksa,
- 3-bajtowy identyfikator maszyny,
- dwubajtowy identyfikator procesu i
- licznik 3-bajtowy, zaczynający się od losowej wartości.
Utwórz wiele dokumentów
Możesz wstawić wiele dokumentów w jednym insert() metoda.
W tym przykładzie wstawiamy trzy dokumenty:
db.artists.insert(
[
{ artistname: "The Kooks" },
{ artistname: "Bastille" },
{ artistname: "Gang of Four" }
]
)
Zauważ, że dokumenty są dostarczane w postaci tablicy. Dokumenty są ujęte w nawiasy kwadratowe [] , i są oddzielone przecinkami.
Uruchomienie powyższego kodu spowoduje wyświetlenie następującego komunikatu:
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Osadzone dokumenty
Dokument może zawierać inne dokumenty, tablice i tablice dokumentów.
Możesz również podać wiele par nazwa/wartość w dokumencie, oddzielając je przecinkiem.
db.artists.insert({
artistname : "Deep Purple",
albums : [
{
album : "Machine Head",
year : 1972,
genre : "Rock"
},
{
album : "Stormbringer",
year : 1974,
genre : "Rock"
}
]
}) Wynik:
WriteResult({ "nInserted" : 1 })
Parametry
insert() metoda przyjmuje następujące parametry.
| Parametr | Typ | Opis |
|---|---|---|
document | dokument lub tablica | Dokument lub tablica dokumentów do wstawienia do kolekcji (jak w powyższych przykładach). |
writeConcern | dokument | Parametr opcjonalny. Jest to dokument wyrażający obawy związane z zapisem. Problem dotyczący zapisu opisuje poziom potwierdzenia żądanego od MongoDB dla operacji zapisu do samodzielnego mongod lub do zestawów replik lub do klastrów podzielonych na fragmenty. |
ordered | wartość logiczna | Parametr opcjonalny. Jeśli wartość jest ustawiona na true , MongoDB wykona uporządkowane wstawienie dokumentów do tablicy, a jeśli wystąpi błąd z jednym z dokumentów, MongoDB zwróci bez przetwarzania pozostałych dokumentów w tablicy.
Jeśli wartość jest ustawiona na |
insertOne() Metoda
Możesz także użyć insertOne() metoda wstawienia pojedynczego dokumentu do kolekcji:
db.musicians.insertOne({ _id: 1, name: "Ian Gillan", instrument: "Vocals" })
Tutaj określiliśmy nieistniejącą kolekcję. Podobnie jak w przypadku insert() metoda, określona kolekcja zostanie utworzona, jeśli jeszcze nie istnieje.
Zauważysz, że dane wyjściowe są inne niż w przypadku użycia insert() metoda:
{ "acknowledged" : true, "insertedId" : 1 }
Osadzone dokumenty
Tak jak w przypadku insert() , możesz wstawić osadzone dokumenty i tablice dokumentów:
db.artists.insertOne({
artistname : "Miles Davis",
albums : [
{
album : "Kind of Blue",
year : 1959,
genre : "Jazz"
},
{
album : "Bitches Brew",
year : 1970,
genre : "Jazz"
}
]
}) Wynik:
{
"acknowledged" : true,
"insertedId" : ObjectId("578214f048ef8c6b3ffb0159")
}
insertMany() Metoda
Jak sama nazwa wskazuje, możesz użyć insertMany() aby wstawić wiele dokumentów:
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 },
]
)
Ponownie, dane wyjściowe przy użyciu insertMany() różni się od wstawienia wielu dokumentów za pomocą insert() metoda:
{
"acknowledged" : true,
"insertedIds" : [
2,
3,
4,
5,
6,
7,
8
]
}
Osadzone dokumenty
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"
}
]
}
]) Wynik:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("578217c248ef8c6b3ffb015a"),
ObjectId("578217c248ef8c6b3ffb015b")
]
}