#javascript #sql #node.js #sequelize.js
#javascript #sql #node.js #sequelize.js
Вопрос:
Каков правильный способ обновления строки в Sequelize.js ? Согласно документации, я могу сделать оба model.update
или instance.update
.
model.update
— требуется только один вызов базы данных (я думаю), но он называется «массовым» обновлением, что не очень хорошо, когда у вас есть, например, хуки.
instance.update
— сначала вам нужно найти эту строку, затем вы можете обновить, так что это 2, по крайней мере, 2 вызова. Это называется обычным одиночным обновлением, а не массовым.
У меня есть REST API со структурой CRUD. Создание не может быть выполнено иначе, чем mode.create
и это имеет смысл. Но как насчет обновления. Каков правильный СПОСОБ обновления одной строки? Или это просто о моих потребностях, и это вопрос, основанный на мнении?
Ответ №1:
Ну, это, как вы говорите, больше зависит от ваших потребностей. Оба способа верны. Взяв из документации, первым способом instance.update
Это то же самое, что вызвать set, а затем вызвать save, но при этом сохраняются только точные значения, переданные ему, что делает его более атомарным и безопасным.
Это безопаснее для обновления записи. В вашем API вы можете установить parameter
в качестве промежуточного программного обеспечения, поэтому при каждом вызове, например, update
, findById
и remove
всегда сначала находите фактический объект и обновляйте или уничтожайте его там.
Для второго способа model.update
Обновите несколько экземпляров, которые соответствуют параметрам where.
Таким образом, вы можете просто обновить сразу с where
условием.
Также помните, что первые параметры возвращают обновленный объект, а второй возвращает массив с числом того, сколько записей было выгружено.