放置在Sequelize,PostgreSQL中的WHERE子句中以获取所有内容的值

问题描述 投票:1回答:2

我有这段代码:

return User.findAll({where: {}, include:[
  {model: UserInfo, where: {
    gender: genderPreference
  }}
]

我想在genderPreference中传递这样的值,以便它为我提供所有值。目前我正在通过“男性”或“女性”,这相应地从数据库中提供了数据;但如果没有任何性别的偏好,那么我不知道该怎么做。我试过null,“”,“”;但它们都不起作用。这有什么解决方案吗?谢谢。

node.js postgresql sequelize.js
2个回答
0
投票

只是不要在null上使用引号,它会正常工作

return User.findAll({where: {}, include:[
  {model: UserInfo, where: {
    gender: null
  }}
]

the tutorial for more information


0
投票

我实际上用不同的方法解决了这个问题。配售:

gender: null

实际上搜索数据库中的性别字段是否为空,所以我不得不用不同的方法解决它。我想要数据库中的“所有数据”。所以,这几乎解决了它:

 if(req.body.genderPreference == "none"){
    conditionalUserInfo = {model: UserInfo, where:{}};
} else {
    conditionalUserInfo = {model: UserInfo, where: {gender: req.body.genderPreference}};
}
return User.findAll({where: {}, include:[
  conditionalUserInfo
]

GenderPreference参数包含“男性”或“女性”或“无”。

© www.soinside.com 2019 - 2024. All rights reserved.