从多个表中提取 Sequelize 信息
Pulling Sequelize Info from multiple tables
我对新的续集还很陌生,但我想弄清楚如何从多个 table 中提取续集信息(放置和查看 table )并将它们呈现在同一页。评论 table 有一个用户 ID 和一个地点 ID。我已经尝试了原始查询和下面代码的不同变体,但都无济于事。在这种情况下我应该使用哪种语法?
User.hasMany(Review);
Review.belongsTo(User);
User.hasMany(Place);
Place.belongsTo(User);
Place.hasMany(Review);
Review.belongsTo(Place);
app.get('/place/:category/:id', function(req, res){
var id = req.params.id;
Place.findAll({
where : {id : id},
include: [{
model: [Review]
}]
}).then(function(reviews){
res.render('singular', {reviews});
});
});
根据您的 API 路线定义,我假设您正在尝试根据地点 ID 显示对地点的评论。
因此,要实现这一点,您可以将 table 关联建模为
Places.hasMany(Reviews);
Users.hasMany(Reviews);
Review.belongsTo(Places);
Review.belongsTo(Users);
现在,基于此关联,您可以执行如下查询:
Places.findById(req.params.id, {
include: [{
model: Reviews,
required: false,
include: [{
model: Users,
required: false
}]
}]
}).then(function(place) {
// The rest of your logic here...
});
我对新的续集还很陌生,但我想弄清楚如何从多个 table 中提取续集信息(放置和查看 table )并将它们呈现在同一页。评论 table 有一个用户 ID 和一个地点 ID。我已经尝试了原始查询和下面代码的不同变体,但都无济于事。在这种情况下我应该使用哪种语法?
User.hasMany(Review);
Review.belongsTo(User);
User.hasMany(Place);
Place.belongsTo(User);
Place.hasMany(Review);
Review.belongsTo(Place);
app.get('/place/:category/:id', function(req, res){
var id = req.params.id;
Place.findAll({
where : {id : id},
include: [{
model: [Review]
}]
}).then(function(reviews){
res.render('singular', {reviews});
});
});
根据您的 API 路线定义,我假设您正在尝试根据地点 ID 显示对地点的评论。
因此,要实现这一点,您可以将 table 关联建模为
Places.hasMany(Reviews);
Users.hasMany(Reviews);
Review.belongsTo(Places);
Review.belongsTo(Users);
现在,基于此关联,您可以执行如下查询:
Places.findById(req.params.id, {
include: [{
model: Reviews,
required: false,
include: [{
model: Users,
required: false
}]
}]
}).then(function(place) {
// The rest of your logic here...
});