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

MongoDB:Актуализиране/Upsert срещу вмъкване

Ако вмъквате документ, MongoDB трябва да провери дали документът със същия ObjectId съществува или не. Ако съществува, документът не може да бъде вмъкнат.

Същият случай важи и за актуализацията. Трябва да се провери дали документът съществува или не. В противен случай актуализацията не може да бъде извършена. Случаят, в който вашата заявка за актуализиране ще се забави, е когато не може да намери документ въз основа на вашия ObjectId / индексирано поле.

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

Така че Insert може да бъде така //(Бързо)

  1. (Проверка за документ -> Не е намерен -> Вмъкване на нов документ) Друго
  2. (Проверете за документ -> Намерен -> Не може да бъде вмъкнат)

И актуализирайте с upsert (наличен ObjectId) //(Бързо)

  1. (Проверка за документ -> Не е намерен -> Вмъкване на нов документ) Друго
  2. (Проверка за документ -> Намерен -> Актуализиране на документа)

Или Актуализирайте с upsert (Без ObjectId) //Това е бавно

  1. (Намиране на ObjectIds (бавно) -> Не е намерено -> Вмъкване на нов документ) Друго
  2. (Намиране на ObjectIds (бавно)-> Намерени -> Актуализиране на документите)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Намерете минималния елемент в масива и го изтрийте

  2. Съхранявайте файла в GridFS на Mongo с ExpressJS след качване

  3. Може ли mongorestore да приеме един единствен аргумент URL вместо отделни аргументи?

  4. Как да попълня обект с масив от обекти в mongoose?

  5. Как да използвам db препратки с реактивни Spring Data MongoDB?