Как обновить, если существует, иначе вставить новый документ?

Как обновить, если существует, иначе вставить новый документ в javascript / node.js? Я получаю в качестве параметра функцию словаря, если словарь содержит _id, необходимо обновить, иначе вставить на удаленный сервер (у меня есть соединение с удаленным сервером через mongoose, и у меня есть персональная схема, которую я хочу вставить / обновить).

В Mongoose вы должны использовать Person.update для документации . Чтобы создать документ, если он еще не существует, вам необходимо передать { upsert : true } в hash-опции, поскольку по умолчанию он равен false .

т.е.

 Person.update( { name : 'Ted' }, { name : 'Ted', age : 50 }, { upsert : true }, callback ); 

collection.update с upsert:true . См. Также здесь .

[db.collection.replaceOne(filter, replacement, options)] с upsert:true

Например, отсюда :

 try { db.restaurant.replaceOne( { "name" : "Pizza Rat's Pizzaria" }, { "_id": 4, "name" : "Pizza Rat's Pizzaria", "Borough" : "Manhattan", "violations" : 8 }, { upsert: true } ); } catch (e){ print(e); } 
  • Заполнение вложенного массива в мангусте
  • Заseleniumие Mongoose vs вложенность объекта
  • Почему вы не можете изменять данные, возвращаемые Mongoose Query (например: findById)
  • Mongoose (mongodb) пакетная вставка?
  • mongodb / mongoose findMany - найти все документы с идентификаторами, перечисленными в массиве
  • Исключение: невозможно преобразовать из BSON типа EOO в Date
  • Строка Node.js Mongoose.js для функции ObjectId
  • Как вы превращаете документ Mongoose в простой объект?
  • Индексирование Mongoose в производственном коде
  • Mongoose.js instance.save () callback не срабатывает
  • поле мангуста с типом имени
  • Interesting Posts

    Проверьте правильность службы Google Play: «К сожалению приложение перестало работать»

    Registry Watcher C #

    Опции для встраивания Chromium вместо IE WebBrowser с WPF / C #

    Не удалось добавить окно [email protected] – разрешено разрешение для этого типа windows

    Используйте ‘class’ или ‘typename’ для параметров шаблона?

    C ++: где инициализировать переменные в конструкторе

    Причина «Журнала контекстного ядра сеанса» не удалось запустить ошибку в журнале событий?

    Слишком мало периодов для разложения ()

    Разница между мостом и шаблоном адаптера

    Как запустить «rails генерировать леса», когда модель уже существует?

    Как создать Multimap с карты <K, Collection >?

    Force Intellij IDEA перечитать все зависимости от maven

    Отрегулировать контрастность PDF с помощью Adobe Reader / Acrobat?

    Ошибка компилятора «ожидаемый метод не найден» при использовании индекса на NSArray

    Как псевдоним имени функции в Fortran

    Давайте будем гением компьютера.