Node.js Sequelize belongtomany:WHERE子句中的自定义列
我有这3种型号:Node.js Sequelize belongtomany:WHERE子句中的自定义列,node.js,sequelize.js,Node.js,Sequelize.js,我有这3种型号: var User = sequelize.define('users', { name: { type: DataTypes.STRING(50), field: 'name' } }); var Book = sequelize.define('books', { name: { type: DataTypes.STRING(50), field: 'name' } });
var User = sequelize.define('users', {
name: {
type: DataTypes.STRING(50),
field: 'name'
}
});
var Book = sequelize.define('books', {
name: {
type: DataTypes.STRING(50),
field: 'name'
}
});
var UserBook = sequelize.define('userbook', {
validated: {
type: DataTypes.INTEGER,
field: 'validated',
defaultValue: 0
}
});
Book.belongsToMany(User, {through: UserBook, foreignKey: 'bookId'});
User.belongsToMany(Book, {through: UserBook, foreignKey: 'userId'});
现在我想为validated=1的用户获取书籍
我试过这个:
User.findOne({
where: { id: req.session.user.id }
})
.then(function(user){
user.getBooks({
through: { validated: 1 }
})
.then(function(books){
return res.json({success: true, books: books});
})
});
但它返回所有书籍,而不检查validated=1
如何获取已验证=1的所有书籍
谢谢我已经试过了:
User.findOne({
where: { id: req.session.user.id }
})
.then(function (user) {
user.getBooks({
where: { validated: 1 }
})
.then(function (books) {
return res.json({ success: true, books: books });
})
});
?
编辑(它有效):
我试过这个:
User.findOne({
where: { id: req.session.user.id }
})
.then(function (user) {
user.getBooks({
where: { validated: 1 }
})
.then(function (books) {
return res.json({ success: true, books: books });
})
});
?
编辑(它有效):
是的,但是它抛出了这个错误:
ER\u BAD\u FIELD\u错误:where子句中的未知列'books.validated'
User.findById(req.session.User.id,{include:[{model:Book,through:{where:{validated:1}}}]})。然后((User)=>{console.log(User);})是的,但是它抛出了这个错误:ER\u BAD\u FIELD\u错误:where子句中的未知列'books.validated'
User.findById(req.session.User.id,{include:[{model:Book,through:{where:{validated:1}}}]})。然后((User)=>{console.log(User);})