ces*_*pon 5 sqlite node.js sequelize.js
Test我有一个带有唯一字段(主键)的 Sequelize 模型value。我使用 SQLite 作为数据库管理系统。
当我使用该bulkCreate()选项时ignoreDuplicates: true,bulkCreate如果新数据已存在于数据库中,则忽略新数据。这是可行的,但返回的对象bulkCreate()始终具有isNewRecord: false,即使将新记录插入数据库也是如此。
const items = [ {value: 'a'}, {value: 'b'} ]; // Items to be saved in database.
const results = await Test.bulkCreate(items, {
ignoreDuplicates: true // Ignore duplicate records
});
Run Code Online (Sandbox Code Playgroud)
首次在空数据库上执行后bulkCreate(),值results:
[
Test {
dataValues: {
value: 'a',
createdAt: 2020-07-12T12:01:08.695Z,
updatedAt: 2020-07-12T12:01:08.695Z
},
_previousDataValues: {
value: 'a',
createdAt: 2020-07-12T12:01:08.695Z,
updatedAt: 2020-07-12T12:01:08.695Z
},
_changed: Set {},
_options: {
isNewRecord: true,
_schema: null,
_schemaDelimiter: '',
include: undefined
},
isNewRecord: false
},
Test {
dataValues: {
value: 'b',
createdAt: 2020-07-12T12:01:08.695Z,
updatedAt: 2020-07-12T12:01:08.695Z
},
_previousDataValues: {
value: 'b',
createdAt: 2020-07-12T12:01:08.695Z,
updatedAt: 2020-07-12T12:01:08.695Z
},
_changed: Set {},
_options: {
isNewRecord: true,
_schema: null,
_schemaDelimiter: '',
include: undefined
},
isNewRecord: false
}
]
Run Code Online (Sandbox Code Playgroud)
我预计isNewRecord: true在第一次执行后。我缺少什么?
isNewRecord的Model:
ignoreDuplicates的bulkCreate():
isNewRecord如果数据库中不存在模型实例,则该字段为 true。
const user = new User({ ...userData });
console.log(user.isNewRecord); // true
await user.save();
console.log(user.isNewRecord); // false
Run Code Online (Sandbox Code Playgroud)