Consulta mongodb com node.js

Estou fazendo assim:

let where = {
          data_hora: {
            $gte: "2021-01-15",
            $lte: "2022-10-03T23:59:59.000Z",
          },
          id_campanha: campanha,
        };
        const zanzar = await Zanzar.find(where).sort({
          data_hora: -1,
          id_campanha: -1,
        });

Gera no console

Mongoose: zanzars.find({ data_hora: { '$gte': new Date("Fri, 15 Jan 2021 00:00:00 GMT"), '$lte': new Date("Mon, 03 Oct 2022 23:59:59 GMT") }, id_campanha: '493275'}, { sort: { data_hora: -1, id_campanha: -1 }, projection: {} })

Não retorna resultados

Mas

Traz resultados.

Como fazer esta consulta, retornar os dados reais no sistema ?

Talvez o timezone esteja influenciando na consuta: 2022-10-03T23:59:59.000Z. Tente deixar as datas ($gte e $lte) exatamente iguais tanto na consulta do sistema qdo no compass e veja o que retorna.

1 curtida

Ai não retorna nada.

Digo deixar ambos assim:

$gte: "2021-01-15",
$lte: "2022-10-03T23:59:59.000Z"

Pois os valores estão diferentes na aplicação e no compass.

1 curtida

Não traz nada. No node ele monta assim:

zanzars.find({ data_hora: { '$gte': new Date("Fri, 15 Jan 2021 00:00:00 GMT"), '$lte': new Date("Mon, 03 Oct 2022 23:59:59 GMT") }, nome_campanha: 'A - Game - MagiCashQuiz'}, { sort: { data_hora: -1, id_campanha: -1 }, projection: {} })

Vi que vc disse sobre o timezone . Como ajusto ?

O que tinha pensando era vc não precisar passar o .000Z na data ao realizar a consulta pela aplicação, mas parece que não fez diferença pelos outros testes que vc fez.

1 curtida

Na verdade como o campo é DATEHORA, ele coloca o new Date, parece

O que será em ?

O que pode ser ?