mko*_*yak 13 node.js sequelize.js
sequelize 1.6在changelog中有以下内容:
[FEATURE]为find和findAll添加了关联预取
问题是如何?
我定义了以下模型:
var self = {
Medium: client.define("Medium", {
name: Sequelize.STRING,
description: Sequelize.TEXT
},
User: client.define("User", {
firstName: Sequelize.STRING,
lastName: Sequelize.STRING,
email: Sequelize.STRING,
aboutArt: Sequelize.TEXT,
bio: Sequelize.TEXT,
password: Sequelize.STRING,
description: Sequelize.TEXT
}
};
self.User.hasMany(self.Medium, { as: 'Media' });
self.Medium.hasMany(self.User);
for(var key in self){
var model = self[key];
model.sync();
}
Run Code Online (Sandbox Code Playgroud)
后来我拿这样的用户:
User.find(id)
.success(function(record) {
//record has no media!
})
Run Code Online (Sandbox Code Playgroud)
用户实例没有列表媒体.我如何自动获取关联?
sde*_*old 28
顺便说一句:现在Sequelize 1.6.0已经发布,热切加载的语法略有改变:
User.find({ where: {id: id}, include: [Media] }).success(function(user){
console.log(user.media)
})
Run Code Online (Sandbox Code Playgroud)
因此,您必须将Model而不是Model的名称传递给include语句.
sdepold实际上编写了代码,但我相信他确定的语法包括:
User.find({ where: {id: id}, include: ['Media'] }).success(function(user){
console.log(user.media)
})
Run Code Online (Sandbox Code Playgroud)