gpt4 book ai didi

node.js - Sequelize BelongsToMany : custom column in WHERE clause

转载 作者:行者123 更新时间:2023-12-03 22:23:46 32 4
gpt4 key购买 nike

我有这 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 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'});

现在我想为验证 = 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

如何获取所有带有validated=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.findById(req.session.user.id, {
include: [
{
model: Book,
through: {
where: { validated: 1 }
}
}
]
}).then((user) => {
console.log(user);
})

关于node.js - Sequelize BelongsToMany : custom column in WHERE clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506750/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com