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

Wstaw MongoDBWiele()

W MongoDB db.collection.insertMany() metoda wstawia wiele dokumentów do kolekcji.

collection część to nazwa kolekcji, do której mają zostać wstawione dokumenty.

Przykład

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

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

Wynik:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

db.collection.insertMany() metoda zwraca dokument zawierający:

  • Boole'owskie acknowledged jako true jeśli operacja została wykonana z problemem zapisu lub false jeśli problem zapisu był wyłączony.
  • Tablica _id wartości dla każdego pomyślnie wstawionego dokumentu.

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 dokumentów bez podania _id pola.

db.pets.insertMany([
    { name: "Bruce", type: "Bat" },
    { name: "Sweetie", type: "Honey Badger" }
    ])

Wynik:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5fe30ef737b49e0faf1af215"),
		ObjectId("5fe30ef737b49e0faf1af216")
	]
}

_id zwracane są wartości dokumentów. Moglibyśmy ich użyć do przeszukania kolekcji tylko pod kątem wstawionych dokumentów.

Ale w tym przypadku spójrzmy na całą 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("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

Widzimy, że nasze dwa nowe dokumenty są zawarte w kolekcji.

ordered Parametr

db.collection.insertMany() 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.insertMany() metoda akceptuje również writeConcern argument, który opisuje poziom potwierdzenia żądanego od MongoDB dla operacji zapisu.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB findOneAndReplace()

  2. Usuń pole znalezione w dowolnej tablicy mongodb

  3. Jak wstawić dokument z datą w mongo?

  4. Jak określić kolejność lub sortowanie przy użyciu sterownika C# dla MongoDB?

  5. Nie można połączyć się z MongoDB (MongoLabs) przez klienta C#