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

MongoDB вмъкване()

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

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

Пример

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

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

Резултат:

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

db.collection.insert() метод връща обект, който съдържа състоянието на операцията вмъкване.

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

  • Когато се вмъкне единичен документ, той връща WriteResult обект.
  • Когато се вмъкне масив от документи, той връща BulkWriteResult обект.

Можем да видим, че горният пример върна BulkWriteResult обект. Това е така, защото добавихме масив от документи. Щеше да направи това, дори ако масивът съдържаше само един елемент.

Сега, ако използваме 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.insert(
    { name: "Bruce", type: "Bat" }
    )

Резултат:

WriteResult({ "nInserted" : 1 })

Имайте предвид, че в този случай методът връща WriteResult обект вместо BulkWriteResult обект. Това е така, защото вмъкнахме един документ (и той не беше в масив).

Сега да разгледаме колекцията отново.

db.pets.find()

Резултат:

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

Можем да видим, че нашият нов документ е включен в колекцията и има _id поле с автоматично генерирана стойност.

ordered Параметър

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

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

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

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

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

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

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

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Най-добрият начин за хостване на MongoDB на DigitalOcean

  2. Функции на MongoDB в ClusterControl 1.4

  3. Най-добрият междинен софтуер за съхранение на сесии за Express + MongoDB

  4. Mongodb:множество колекции или една голяма колекция с индекс

  5. Запитване за документ и всички негови поддокументи, които съответстват на условие в mongodb (с помощта на spring)