tee*_*mup 9 javascript node.js sequelize.js
我在我的node.js项目中以偏执模式使用Sequelize.js,而软删除在查找和删除数据时按预期工作,我很难找到取消删除软删除行的方法.
我知道我可以按照文档中的说明使用已删除的行
Model.findAll({paranoid: false, where: {deletedAt: {ne: null}}})
Run Code Online (Sandbox Code Playgroud)
但偏执:更新时无法使用false .
是否可以在Sequelize中取消删除软删除的行,或者我只是遗漏了什么?
sde*_*old 16
你可以使用instance.setDataValue('deletedAt', null):
var Bluebird = require('bluebird');
var models = require('./models');
models.sequelize.sync({ force: true })
.then(function () {
return models.User.create({ name: 'user' })
})
.then(function (user) {
return user.destroy()
})
.then(function () {
return models.sequelize.models.User.findAll({ paranoid: false });
})
.then(function (users) {
var user = users[0];
user.setDataValue('deletedAt', null);
return user.save({ paranoid: false });
}).then(function () {
return models.sequelize.models.User.findAll();
}).then(function (users) {
console.log(users[0]);
});
Run Code Online (Sandbox Code Playgroud)
请注意,此代码段使用Sequelize @ v2
Mir*_*sin 14
{paranoid: false}选择你的对象,即.var model = Model.findOne({ where: { something: 1 }, paranoid: false })然后恢复它model.restore() http://docs.sequelizejs.com/en/latest/api/instance/#restoreoptions-promiseundefined
您可以使用以下方法来做到这一点paranoid: false:
Model.update( { deletedAt: null }, { where: {deletedAt: {ne: null} }, paranoid: false });
Run Code Online (Sandbox Code Playgroud)
偏执的选项
如果为 true,则仅更新未删除的记录。如果为 false,则已删除和未删除的记录都将被更新。仅当 options.paranoid 对于模型为 true 时才适用。
欲了解更多详细信息:请阅读
我知道这个问题很老了,当时可能没有解决方案
| 归档时间: |
|
| 查看次数: |
7176 次 |
| 最近记录: |