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

Wstaw MongoDB()

W MongoDB db.collection.insert() metoda wstawia dokument lub dokumenty do kolekcji.

collection część to nazwa kolekcji, do której należy wstawić dokument/y.

Przykład

Oto przykład użycia db.collection.insert() aby wstawić wiele dokumentów do kolekcji o nazwie pets :

db.pets.insert([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Wynik:

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

db.collection.insert() metoda zwraca obiekt, który zawiera stan operacji wstawiania.

Zwrócony obiekt zależy od tego, czy wstawiono pojedynczy dokument, czy wiele dokumentów.

  • Po wstawieniu pojedynczego dokumentu, zwraca on WriteResult obiekt.
  • Gdy wstawiana jest tablica dokumentów, zwraca BulkWriteResult obiekt.

Widzimy, że powyższy przykład zwrócił BulkWriteResult obiekt. To dlatego, że dodaliśmy szereg dokumentów. Zrobiłoby to, nawet gdyby tablica zawierała tylko jeden element.

Teraz, jeśli użyjemy db.collection.find() aby spojrzeć na kolekcję, zobaczymy nowo dodane dokumenty.

db.pets.find()

Wynik:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

W tym przypadku nasze trzy dokumenty są jedynymi w kolekcji, więc tylko te dokumenty zostały zwrócone.

Jeśli jednak kolekcja była duża, moglibyśmy użyć identyfikatorów dokumentów, aby zawęzić wyniki tylko do interesujących nas dokumentów.

db.pets.find({_id: {$in: [1,2,3]}})

Wynik:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Co jeśli kolekcja nie istnieje?

Jeśli kolekcja nie istnieje, jest tworzona, a dokumenty są do niej dodawane.

Jeśli kolekcja już istnieje, dokumenty są do niej po prostu dodawane (pod warunkiem ich _id wartości nie kolidują z żadnymi istniejącymi).

Kiedy stworzyłem ten przykład, kolekcja nie istniała, więc została utworzona operacja wstawiania.

_id Pole

_id pole jest unikalnym polem identyfikatora w MongoDB.

Jak pokazano w poprzednim przykładzie, możesz podać swój własny _id pole w dokumencie. Jeśli to zrobisz, jego wartość musi być unikalna w kolekcji. Dzieje się tak, ponieważ Twój _id pole będzie używane jako unikalny identyfikator dokumentu.

Oto przykład wstawiania dokumentu bez podania _id pola.

db.pets.insert(
    { name: "Bruce", type: "Bat" }
    )

Wynik:

WriteResult({ "nInserted" : 1 })

Zauważ, że w tym przypadku metoda zwraca WriteResult obiekt zamiast BulkWriteResult obiekt. Dzieje się tak, ponieważ wstawiliśmy pojedynczy dokument (i nie było go w tablicy).

Teraz spójrzmy ponownie na kolekcję.

db.pets.find()

Wynik:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe323d837b49e0faf1af218"), "name" : "Bruce", "type" : "Bat" }

Widzimy, że nasz nowy dokument jest zawarty w kolekcji i ma _id pole z automatycznie wygenerowaną wartością.

ordered Parametr

db.collection.insert() metoda akceptuje również ordered parametr. Jest to parametr logiczny z domyślną wartością true .

ordered parametr określa, czy operacja wstawiania powinna być uporządkowana, czy nieuporządkowana.

Jeśli ordered jest ustawione na false , dokumenty są wstawiane w nieuporządkowanym formacie i mogą być zmieniane przez mongod w celu zwiększenia wydajności.

Przy zamówionych wstawkach, jeśli wystąpi błąd podczas wstawiania jednego z dokumentów, MongoDB zwraca błąd bez przetwarzania pozostałych dokumentów w tablicy.

W przypadku nieuporządkowanych wstawek, jeśli wystąpi błąd podczas wstawiania jednego z dokumentów, MongoDB kontynuuje wstawianie pozostałych dokumentów do tablicy.

Więcej informacji

db.collection.insert() metoda akceptuje również writeConcern argument, który opisuje poziom potwierdzenia żądanego od MongoDB dla operacji zapisu.

Zobacz dokumentację MongoDB dla db.collection.insert() aby uzyskać więcej informacji.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak dołączyć do zapytania w mongodb?

  2. mongodb count liczba odrębnych wartości na pole/klucz

  3. Mongoose — sprawdź składnię wiadomości e-mail

  4. Ładny wydruk w powłoce MongoDB domyślnie

  5. Jak zainstalować NodeJS z MongoDB na Ubuntu?