Значение для размещения внутри предложения WHERE в Sequelize, PostgreSQL, чтобы получить все - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть этот кусок кода:

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

Я хочу передать такое значение в sexPreference, чтобы оно давало мне все значения. В настоящее время я передаю либо «Мужской», либо «Женский», что дает мне эти данные из базы данных соответственно; но если нет предпочтения ни одному из полов, то я понятия не имею, что делать. Я пробовал ноль, "", ""; но никто из них не работает. Есть ли какое-то решение этого? Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Я действительно решил это с другим подходом. Размещение:

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 содержит «Male», «Female» или «none».

0 голосов
/ 08 сентября 2018

Только не используйте кавычки на null, все будет хорошо

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

См. учебник для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...