Как обновить, если существует, иначе вставить новый документ?
Как обновить, если существует, иначе вставить новый документ в javascript / node.js? Я получаю в качестве параметра функцию словаря, если словарь содержит _id, необходимо обновить, иначе вставить на удаленный сервер (у меня есть соединение с удаленным сервером через mongoose, и у меня есть персональная схема, которую я хочу вставить / обновить).
- Mongoose Уникальный индекс не работает!
- Создание индексов Multifield в Mongoose / MongoDB
- Остановить Mongoose от создания свойства _id для элементов массива поддокумента
- Почему вы не можете изменять данные, возвращаемые Mongoose Query (например: findById)
- Запрос Mongoose / mongoDB ... но я пришел из sql-фона
- Поддерживает ли Mongoose метод Mongodb `findAndModify`?
- Mongoose - название коллекции Force
- $ искать несколько уровней без $ unwind?
В 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); }