MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB - Utwórz dokument

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 false , MongoDB wykona nieuporządkowane wstawianie, a jeśli wystąpi błąd w jednym z dokumentów, pozostałe dokumenty w tablicy będą nadal przetwarzane.

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dokumentacja ClusterControl 1.5 — co nowego

  2. Sortowanie według wielu pól Mongo DB

  3. Jak sortować dokumenty podrzędne w polu tablicy?

  4. Jak usunąć element z podwójnie zagnieżdżonej tablicy w dokumencie MongoDB.

  5. MongoDB - kopiuj kolekcję w Javie bez zapętlania wszystkich elementów