我正在将sequelize与MySQL一起插入记录。我正在使用一张表格来映射一段时间内的平均值。我想检查表中是否有不到一周的记录,如果有我想将该记录退还给客户,如果没有记录,则要计算平均值并插入平均值但是,将记录插入表中两次。我唯一的线索是它可能与节点事件循环有关,因为可以在循环内调用此函数,这可能是错误的。为什么我在平均值表中得到重复的记录?
let averages;
let week = 7 * 60 * 60 * 24 * 1000;
let weekAgo = new Date(Date.now() - week);
averages = await sequelize.models.Average.findOne({
where: {
industry_id: industry._id,
createdAt: {
[Op.gte]: weekAgo,
},
},
});
if (averages) {
return averages.dataValues;
}
averages = await getIndustryAverage(industry);
averages = averages.dataValues;
averages = await Average.create({
industry_id: industry._id,
// fields....
});
return averages.dataValues;