Czy istnieje sposób na napisanie zapytania delete / deleteAll, takiego jak findAll?
Na przykład chcę zrobić coś takiego (zakładając, że MyModel jest modelem Sequelize ...):
MyModel.deleteAll({ where: ['some_field != ?', something] })
.on('success', function() { /* ... */ });
javascript
node.js
sequelize.js
lakenen
źródło
źródło
Szukałem głęboko w kodzie, krok po kroku do następujących plików:
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
Co znalazłem:
Nie ma metody deleteAll, istnieje metoda destru (), którą można wywołać w rekordzie, na przykład:
źródło
Nie wiem, czy pytanie jest nadal aktualne, ale w dokumentacji Sequelize znalazłem następujące informacje.
http://sequelizejs.com/blog/state-of-v1-7-0
Mam nadzieję, że to pomoże!
źródło
where
obiektu (np{someId: 123}
.).Ten przykład pokazuje, jak obiecać zamiast oddzwonić.
Sprawdź ten link, aby uzyskać więcej informacji http://docs.sequelizejs.com/en/latest/api/model/#destroyoptions-promiseinteger
źródło
W nowej wersji możesz spróbować czegoś takiego
źródło
Oto przykład ES6 używający Await / Async:
Zwróć uwagę, że używam
!!
operatora Bang Bang na wyniku oczekiwania, który zmieni wynik na wartość logiczną.źródło
Jakiś czas temu napisałem coś takiego dla Sailsów, na wypadek gdyby to zaoszczędziło trochę czasu:
Przykładowe użycie:
Źródło:
od: orm.js .
Mam nadzieję, że to pomoże!
źródło
źródło
Usuń wszystko, bez warunków:
źródło