创建前Sequelize Hook查找上次创建的字段值,并增加新值+1



我使用sequelize,我有这样的表。

id uploadedFileID flowSectionID flowID position createdAt updatedAt

当我在表上创建新数据时,我想检查是否有行,找到其中的flowID:1(示例(,然后取字段最后一个值的位置,如果是flowID:1的新数据然后将位置增加到1,但如果有一个流ID为1的行(文件(,则取最后一个值"1",然后取我创建的新行,并将新行的"位置"字段设为2。

我的型号:

'use strict';
module.exports = (sequelize, DataTypes) => {
const FlowSectionsUploadedFiles = sequelize.define('FlowSectionsUploadedFiles', {
uploadedFileID: DataTypes.INTEGER,
flowSectionID: DataTypes.INTEGER,
flowID: DataTypes.INTEGER,
position: DataTypes.INTEGER
}, {
hooks: {
beforeCreate: (instance, options) => {
}
}
});
FlowSectionsUploadedFiles.associate = function(models) {
};
return FlowSectionsUploadedFiles;
};

我是怎么挂的??谢谢

hooks: {
beforeCreate: async (instance) => {
const files = await FlowSectionsUploadedFiles.findAll({
where: { flowID: instance.dataValues.flowID },
raw: true 
});
if (files.length === 0) {
instance.position = 1;
} else {
const position = [];
files.map(file => {
position.push(file.position);
});
let max = Math.max.apply(null, position);
instance.position = max + 1;
}
}
}

最新更新