MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB insertMany()

В MongoDB db.collection.insertMany() метод вмъква множество документи в колекция.

collection част е името на колекцията, в която да вмъкнете документите.

Пример

Ето пример за използване на db.collection.insertMany() за да вмъкнете множество документи в колекция, наречена pets :

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

Резултат:

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

db.collection.insertMany() метод връща документ, съдържащ:

  • Булева acknowledged като true ако операцията се изпълняваше със загриженост за запис или false ако загрижеността за запис е деактивирана.
  • Масив от _id стойности за всеки успешно вмъкнат документ.

Сега, ако използваме db.collection.find() за да разгледаме колекцията, ще видим новодобавените документи.

db.pets.find()

Резултат:

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

В този случай нашите три документа са единствените в колекцията и така са върнати само тези документи.

Въпреки това, ако колекцията беше голяма, бихме могли да използваме идентификаторите на документи, за да стесним резултата само до документите, които ни интересуват.

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

Резултат:

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

Ами ако колекцията не съществува?

Ако колекцията не съществува, тя се създава и документите се добавят към нея.

Ако колекцията вече съществува, тогава документите просто се добавят към нея (при условие, че техният _id стойностите не са в конфликт с никакви съществуващи).

Когато създадох този пример, колекцията не съществуваше и така операцията за вмъкване я създаде.

_id Поле

_id полето е уникално поле за идентификатор в MongoDB.

Както беше показано в предишния пример, можете да предоставите свой собствен _id поле в документа. Ако го направите, тогава стойността му трябва да е уникална в колекцията. Това е така, защото вашият _id полето ще се използва като уникален идентификатор на документа.

Ето пример за вмъкване на документи без предоставяне на _id полета.

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

Резултат:

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

_id стойностите на документите се връщат. Можем да ги използваме, за да търсим в колекцията само документите, които вмъкнахме.

Но в този случай нека разгледаме цялата колекция.

db.pets.find()

Резултат:

{ "_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" }

Виждаме, че нашите два нови документа са включени в колекцията.

ordered Параметър

db.collection.insertMany() метод също така приема ordered параметър. Това е булев параметър със стойност по подразбиране true .

ordered параметърът указва дали операцията вмъкване трябва да бъде подредена или неподредена.

Ако ordered е настроен на false , документите се вмъкват в неподреден формат и могат да бъдат пренаредени от mongod за повишаване на производителността.

При подредени вмъквания, ако възникне грешка по време на вмъкване на един от документите, MongoDB се връща при грешка, без да обработва останалите документи в масива.

При неподредени вмъквания, ако възникне грешка по време на вмъкване на един от документите, MongoDB продължава да вмъква останалите документи в масива.

Повече информация

db.collection.insertMany() методът също така приема writeConcern аргумент, който описва нивото на потвърждение, поискано от MongoDB за операции по запис.

Вижте документацията на MongoDB за db.collection.insertMany() за повече информация.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PHP Mongo Грешка при четене от сокет

  2. най-добрата практика на обединяването на django + PyMongo?

  3. Има ли някакъв начин да се имплементира пагинация в spring webflux и spring data reactive

  4. MongoDB Regex Търсене на целочислена стойност

  5. Могат ли строги JSON $dates да се използват в заявка на MongoDB?