假设我们在NodeJs Sequelize中有这样的结构。
var User = sequelize.define('user', {/* ... */})
var Project = sequelize.define('project', {/* ... */})
Project.hasMany(User)
在this part of video演示者提供的保存嵌入式对象的步骤中使用了两个步骤。在我们的例子中,它将类似于:
Project.create({
...
}).then(function(project){
User.create({
...
projectId:project.id
})
})
但是这种方法会导致两次 db调用。
那么,是否可以使用Sequelize将嵌入对象(包含User的项目,例如User必须具有Project的id作为外键)保存到数据库中,或者使用Sequelize保存在一个事务中?
答案 0 :(得分:2)
您应该能够通过将对象数组传递到与exp
上使用的"as"
值相同的键中来插入父子项。虽然使用情况为documentation is light,但您可以在source code here中看到它。
没有承诺(双关语)这是实际在单个SQL查询中运行,不确定Sequelize中的确切实现。您应该能够启用日志记录("include"
中的logging: console.log
)以查看其正在运行的内容。
Sequelize(options)