How do i query a table with multiple conditions? Here are the examples both working:
Post.findAll({ where: ['deletedAt IS NULL'] }).success()
and
Post.findAll({ where: {topicId: req.params.id} }).success()
Then, if i need conditions combined, i feel like i need to do something like
Post.findAll({ where: [{topicId: req.params.id}, 'deletedAt IS NULL'] }).success()
, but it doesn't work.
What is the syntax the sequelize waits for?
node debug says:
DEBUG: TypeError: Object # has no method 'replace'
if it matters...
You can do:
Post.findAll({ where: {deletedAt: null, topicId: req.params.id} })
Which would be translated to deletedAt IS NULL
BTW, if you need deletedAt NOT IS NULL
, use:
Post.findAll({ where: {deletedAt: {$ne: null}, topicId: req.params.id} })
Just do:
Post.findAll(
{ where: ["topicId = ? AND deletedAt IS NULL", req.params.id] }
).success()
Or do you need an or query?
Please note that as of this posting and the 2015 version of sequelize, the above answers are out of date. I am posting the solution that I got working in hopes of saving someone some time.
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
Note the $ and array inside the JSON object and lack of ? token replacement.
Or put in a more general way, since that might help someone wrap their head around it:
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
In new version try this
Post.findAll({
where: {
authorId: 12,
status: 'active'
}
}).then(function (data) {
res.status(200).json(data)
})
.catch(function (error) {
res.status(500).json(error)
});;
This gives me
SELECT `id`, `title`, `description`, `test`, `published`, `createdAt`, `updatedAt` FROM `tests` AS `test` WHERE (`test`.`title` LIKE '%3%' OR `test`.`description` LIKE '%2%');
exports.findAll = (req, res) => {
const title = req.query.title;
const description = req.query.description;
Tutorial.findAll({
where: {
[Op.or]: [{
title: {
[Op.like]: `%${title}%`
}
},
{
description: {
[Op.like]: `%${description}%`
}
}
]
}
})
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while retrieving tutorials."
});
});
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With