MongoError: unknown top level operator: $expr

Estou tentando fazer isso no meu código e funciona perfeitamente no localhost porem no servidor da Umbler fica dando erro.

Segue o ERRO:
MongoError: unknown top level operator: $expr

Segue o codigo que estou tentando fazer no NodeJS com Mongosse:

await model('UsoApi').find({
    $and: [{
      $or: [
        { userIdDaChave: body.userIdDaChave },
        { chaveUsada: body.chaveUsada }
      ]
    },
    {
      "$expr": {
        "$and": [
          { "$eq": [{ "$year": "$createdAt" }, mesAno[1]] },
          { "$eq": [{ "$month": "$createdAt" }, mesAno[0]] }
        ]
      }
    }]
  }).sort({ createdAt: 'desc' });

Alguem consegue me ajudar?

Bom dia, @JotinhaBR

Certo, se entendi bem está tentando fazer uma query no seu banco de dados através de sua aplicação e retorna esse erro, correto?

Acredito que o que pode estar lhe atrapalhando é o tipo de sintaxe que está utilizando no seu MongoDB que não bate com a versão do MongoDB que nossa infraestrutura suporta :confused:
Esse tipo de sintaxe e operador pelo que vi é aceito apenas pela versão 3.6 e aqui no seu servidor por enquanto damos suporte apenas a versão 3.4.4 do MongoDB.

Acredito que precise adequar a sintaxe de sua query, especificamente no seletor destacado no erro ($expr) para o que é aceito por essa versão do MongoDB :confused:

Talvez esse link lhe ajude: Query and Projection Operators — MongoDB Manual

Fico a disposição :wink:

Boa tarde @Mario_Alves

é isso mesmo, não teria como atualizar o MongoDB da Umbler por que eu não achei nenhuma alternativa de seletor para minha query…

@JotinhaBR por enquanto não temos nenhuma previsão de atualização da nossa versão do MongoDB não, infelizmente :frowning: a solução mais viável é tentar adequar a sua query para o dessa versão do MongoDB mesmo :confused:

Mas caso tenha novidades nós vamos te avisar, fique tranquilo :wink: