Phi*_*ipp 2 orm node.js sequelize.js
我使用 Sequelize 为用户评分帖子定义了三个实体:
var User = sequelize.define('User', {
email: {
type: Sequelize.STRING,
primaryKey: true
}
});
var Post = sequelize.define('Post', {
link: {
type: Sequelize.STRING,
primaryKey: true
}
});
var Rating = sequelize.define('Rating', {
result: Sequelize.STRING
});
Rating.belongsTo(Post);
Post.hasMany(Rating);
Rating.belongsTo(User);
User.hasMany(Rating);
Run Code Online (Sandbox Code Playgroud)
一个用户可以评价多个帖子。每个评级只属于一个用户和一个帖子。
现在我想查询给定用户尚未被该用户评级的所有帖子。我尝试了一千种方法,但没有成功。知道如何在 Sequelize 中实现这一目标吗?非常感谢!
有两种方法要么在 Sequelize 中使用原始查询,要么也通过 Sequelize 查询 -
生的 -
return Db.sequelize.query("SELECT * FROM Post P WHERE (P.id NOT IN (SELECT postId FROM Ratings R WHERE R.userId="+userId+")) ",{ type: Sequelize.QueryTypes.SELECT });
Run Code Online (Sandbox Code Playgroud)
续集——
return Post.findAll({
where: {
Sequelize.literal("(posts.id NOT IN (SELECT R.postId FROM Rating R WHERE R.userId="+userId+"))")
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |