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

Mongoose upsert не създава свойство на схемата по подразбиране

Това, което се случва, е, че нито една от стойностите за валидиране, междинен софтуер или стойности по подразбиране на Mongoose не се използват при извикване на който и да е от семейството методи за „актуализация“, като findByIdAndUpdate . Те се извикват само от извиквания на save или create .

Причината за това е, че извикванията за „актуализация“ ефективно преминават към собствения драйвер, като Mongoose осигурява само преобразуване на типа на полетата въз основа на дефиницията на схемата.

Актуализация на Mongoose 4.0

Mongoose вече поддържа настройка по подразбиране, когато се създава нов документ по време на update , findOneAndUpdate или findByIdAndUpdate upsert. Задайте setDefaultsOnInsert опция за true за да активирате това. Това използва $setOnInsert оператор за създаване на настройките по подразбиране при вмъкване.

var queryOptions = {
    upsert: true,
    setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създайте индекс за заместващ текст в MongoDB

  2. MongoDB $addFields и $in в съвкупност

  3. Не може да се направи заявка към mongoDB с mongoose в node.js

  4. Как да покажа качено изображение в Back-end на Keystonejs

  5. Как да конвертирате изглед на MongoDB в колекция