¿Hay alguna forma de escribir una consulta delete / deleteAll como findAll?
Por ejemplo, quiero hacer algo como esto (asumiendo que MyModel es un modelo Sequelize ...):
MyModel.deleteAll({ where: ['some_field != ?', something] })
.on('success', function() { /* ... */ });
javascript
node.js
sequelize.js
Lakenen
fuente
fuente
He buscado profundamente en el código, paso a paso, en los siguientes archivos:
https://github.com/sdepold/sequelize/blob/master/test/Model/destroy.js
https://github.com/sdepold/sequelize/blob/master/lib/model.js#L140
https://github.com/sdepold/sequelize/blob/master/lib/query-interface.js#L207-217
https://github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js
Lo que encontré:
No hay un método deleteAll, hay un método destroy () al que puede llamar en un registro, por ejemplo:
fuente
No sé si la pregunta sigue siendo relevante, pero encontré lo siguiente en la documentación de Sequelize.
http://sequelizejs.com/blog/state-of-v1-7-0
¡Espero eso ayude!
fuente
where
objeto (por ejemplo{someId: 123}
).Este ejemplo muestra cómo hacer promesas en lugar de devolución de llamada.
Consulte este enlace para obtener más información http://docs.sequelizejs.com/en/latest/api/model/#destroyoptions-promiseinteger
fuente
En la nueva versión, puedes probar algo como esto
fuente
Aquí hay un ejemplo de ES6 usando Await / Async:
Tenga en cuenta que estoy usando el
!!
operador Bang Bang en el resultado de la espera que cambiará el resultado a un booleano.fuente
Escribí algo como esto para Sails hace un tiempo, en caso de que te ahorre algo de tiempo:
Uso de ejemplo:
Fuente:
a partir de: orm.js .
¡Espero que ayude!
fuente
fuente
Eliminar todo, sin condiciones:
fuente