.destroy()
删除数据库中与给定条件匹配的记录。
await Something.destroy(criteria);
或者
var destroyedRecords = await Something.destroy(criteria).fetch();
参数 | 类型 | 详情 | |
---|---|---|---|
1 | criteria | 将删除与该 Waterline 条件 匹配的记录。注意,如果您指定一个空字典({} )作为条件,所有记录都将被删除! destroy 查询不支持使用 skip 和 limit 进行分页或使用 select 进行投影。 |
类型 | 描述 |
---|---|
默认情况下,不会将已删除的记录作为结果提供,以优化性能。要覆盖默认设置,请链式调用 .fetch() ,已删除的记录将被发送回来。(请注意,这在某些适配器中需要额外的数据库查询。) |
名称 | 类型 | 何时 |
---|---|---|
UsageError | 如果传入无效内容,则抛出。 | |
AdapterError | 如果数据库适配器出现问题,则抛出。 | |
Error | 如果发生任何其他意外情况,则抛出。 |
有关在 Sails 和 Waterline 中协商错误的示例,请参见 Concepts > Models and ORM > Errors。
键 | 类型 | 详情 |
---|---|---|
fetch | 如果设置为 true ,则将发送回已删除记录的数组。默认为 false 。 |
有关元键的更多信息,请参见 .meta()。
要从数据库中删除所有名为 Finn 的用户
await User.destroy({name:'Finn'});
sails.log('Any users named Finn have now been deleted, if there were any.');
要删除两个一直造成麻烦的特定用户
await User.destroy({
id: { in: [ 3, 97 ] }
});
sails.log('The records for troublesome users (3 and 97) have been deleted, if they still existed.');
要删除特定书籍并获取已删除的记录,请使用 .destroyOne()。
要删除多本书并获取所有已删除的记录
var burnedBooks = await Book.destroy({
controversiality: { '>': 0.9 }
}).fetch();
sails.log('Deleted books:', burnedBooks);
- 此方法可与
await
、promise 链式调用或 传统的 Node 回调 一起使用。- 如果您想在删除记录之前确认一或多个记录是否存在,您应该先执行
find()
。但是,一般来说,最好是尝试做事情,而不是先检查,以免最终出现 竞争条件。
req
)