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

Как обновить, если существует, иначе вставить новый документ в 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); } 
  • Сравнение mongoose _id и строк
  • Как защитить поле пароля в Mongoose / MongoDB, чтобы он не возвращался в запрос при заполнении коллекций?
  • Mongoose Уникальные значения во вложенном массиве объектов
  • Схема Mongoose не была зарегистрирована для модели
  • Групповая агрегация Mongodb $ group, ограничить длину массива
  • Как рисовать с помощью Mongoose в Node.js?
  • Mongoose удалить элемент массива в документе и сохранить
  • Вложенный запрос Mongoose в Model по полю его ссылочной модели
  • Как вернуть только вложенные документы массива из всех документов
  • выборочная проверка mongoose с использованием 2 полей
  • Mongoose: множественный запрос заполняется одним вызовом
  • Interesting Posts

    Как обрабатывать потерянный пароль KeyStore в Android?

    Android INSTALL_FAILED_UID_CHANGED

    Переопределить режим совместимости интрасети IE8

    Windows 10 «Включить политику длинных путей NTFS» отсутствует

    Различные сообщения BSOD при каждом включении компьютера

    Узнайте, существует ли имя пользователя

    Что такое двойная звезда (например, NSError **)?

    Алгоритм URL-адреса YouTube?

    Как слушать клавиатуру в фоновом режиме и стрелять по нажатию клавиши по требованию?

    Как установить соединение по коммутируемому соединению автоматически после загрузки + загрузки 90 МБ данных в Windows?

    Как преобразовать текст в числа для всех ячеек в электронной таблице?

    Как получить 0-заполненное двоичное представление целого числа в java?

    Различие между classами MonadPlus, Alternative и Monoid?

    Как сообщить Windows 7 о том, чтобы никогда не запускать восстановление при запуске

    Общее представление DbDataReader для отображения

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