Comment interroger une table avec plusieurs conditions? Voici les exemples travaillant à la fois:
Post.findAll({ where: ['deletedAt IS NULL'] }).success()
et
Post.findAll({ where: {topicId: req.params.id} }).success()
Ensuite, si j'ai besoin de conditions combinées, je me sens comme si j'ai besoin de faire quelque chose comme
Post.findAll({ where: [{topicId: req.params.id}, 'deletedAt IS NULL'] }).success()
, mais ça ne marche pas.
[.____] Quelle est la syntaxe que la séquilibre attend?
node Debug dit:
Débogage: TypeError: Object # n'a pas de méthode "remplacer"
si cela compte ...
Veuillez noter que, à compter de cette publication et la version la plus récente de Sequelize, les réponses ci-dessus sont obsolètes. Je pose la solution que j'ai eu de travailler dans l'espoir de sauver quelqu'un un peu de temps.
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
Notez le $ et la matrice à l'intérieur de l'objet JSON et de manque de? remplacement de jeton.
Ou mettre de manière plus générale, car cela pourrait aider quelqu'un à envelopper la tête autour de lui:
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
Tu peux faire:
Post.findAll({ where: {deletedAt: null, topicId: req.params.id} })
Qui serait traduit à deletedAt IS NULL
BTW, si vous avez besoin deletedAt NOT IS NULL
, utilisation:
Post.findAll({ where: {deletedAt: {$ne: null}, topicId: req.params.id} })
Juste faire:
Post.findAll(
{ where: ["topicId = ? AND deletedAt IS NULL", req.params.id] }
).success()
Ou avez-vous besoin d'une ou d'une question?
Dans nouvelle version Essayez ceci
Post.findAll({
where: {
authorId: 12,
status: 'active'
}
}).then(function (data) {
res.status(200).json(data)
})
.catch(function (error) {
res.status(500).json(error)
});;