Olá Kaique, tudo bem com você? Espero que sim!
Peço desculpa pela demora em responder o seu tópico.
No Sequelize, é possível utilizar o método Op.and
para combinar vários filtros de forma dinâmica e sem a necessidade de montar manualmente as combinações.
Por exemplo, suponha que você tenha 5 filtros independentes que precisam ser combinados: filtro1
, filtro2
, filtro3
, filtro4
e filtro5
. Para combiná-los com o operador AND
, você pode fazer o seguinte:
const { Op } = require('sequelize');
const filtros = {};
if (filtro1) {
filtros.filtro1 = filtro1;
}
if (filtro2) {
filtros.filtro2 = filtro2;
}
if (filtro3) {
filtros.filtro3 = filtro3;
}
if (filtro4) {
filtros.filtro4 = filtro4;
}
if (filtro5) {
filtros.filtro5 = filtro5;
}
const resultado = await Modelo.findAll({
where: {
[Op.and]: filtros
}
});
Nesse exemplo, os filtros são adicionados dinamicamente ao objeto filtros
apenas se eles estiverem definidos. Em seguida, o operador AND
é aplicado ao objeto filtros
utilizando a constante Op.and
do Sequelize.
Dessa forma, você pode combinar vários filtros de forma dinâmica e sem a necessidade de montar manualmente as combinações. Além disso, é possível evitar a possibilidade de enviar uma propriedade como null sem querer, já que apenas os filtros definidos serão adicionados ao objeto filtros
.
Espero ter ajudado. Caso tenha mais perguntas, estarei a disposição para ajudá-lo.
No mais, grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.