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") ] }