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
acknowledgedjakotruejeśli operacja została wykonana z problemem zapisu lubfalsejeśli problem zapisu był wyłączony. - Tablica
_idwartoś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.