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

Мангуст (mongodb) партидна вложка?

Model.create() срещу Model.collection.insert():по-бърз подход

Model.create() е лош начин да правите вмъквания, ако имате работа с много голям обем. Ще бъдемного бавно . В този случай трябва да използвате Model.collection.insert , който се представя много по-добре . В зависимост от размера на групата, Model.create() дори ще се срине! Пробвах с милион документи, без успех. Използване на Model.collection.insert отне само няколко секунди.

Model.collection.insert(docs, options, callback)
  • docs е масивът от документи, които трябва да се вмъкнат;
  • options е незадължителен конфигурационен обект - вижте документите
  • callback(err, docs) ще бъде извикан, след като всички документи бъдат запазени или възникне грешка. При успех документите са масивът от постоянни документи.

Както авторът на Mongoose посочва тук, този метод ще заобиколи всички процедури за валидиране и ще има директен достъп до драйвера на Mongo. Това е компромис, който трябва да направите, тъй като боравите с голямо количество данни, в противен случай изобщо няма да можете да ги вмъкнете в базата си данни (не забравяйте, че тук говорим за стотици хиляди документи).

Прост пример

var Potato = mongoose.model('Potato', PotatoSchema);

var potatoBag = [/* a humongous amount of potato objects */];

Potato.collection.insert(potatoBag, onInsert);

function onInsert(err, docs) {
    if (err) {
        // TODO: handle error
    } else {
        console.info('%d potatoes were successfully stored.', docs.length);
    }
}

Актуализация 22.06.2019 :въпреки че insert() все още може да се използва добре, вече е отхвърлен в полза на insertMany() . Параметрите са абсолютно същите, така че можете просто да го използвате като замяна и всичко трябва да работи добре (е, връщаната стойност е малко по-различна, но вероятно не я използвате така или иначе).

Справка

  • Документация на Mongo
  • Aaron Heckman в Google Groups, обсъждайки групови вмъквания


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Обединете две полета на масива в mongoDB

  2. Най-съвременно управление на база данни:ClusterControl - Ръководството

  3. MongoDB вложена група?

  4. Съхранявайте датата в MongoDB, без да отчитате часовата зона

  5. Импортирате JSON файл с помощта на mongimport, продължавате да получавате „неочакван идентификатор“?