MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Combinando dois $exists no MongoDB .find


Sua consulta tem alguns problemas, tente abaixo um:
db.getCollection("dtc")
  .find({
    "payload.fields.MDI_CC_DIAG_DTC_LIST": { $exists: true },
    "payload.asset": { $exists: true }
  })
  .count();

Problemas:
  1. .find() receberia dois argumentos .find({...},{...}) o primeiro é o filtro (todos os filtros contra a coleta vão aqui) e o segundo é a projeção (que é usada para excluir ou incluir determinados campos dos documentos de resultados). Aqui você está passando em 3 argumentos. Mas, em geral, quando se trata de node.js A terceira pode ser uma função de retorno de chamada, mas não tem nada a ver com a consulta real sendo executada no banco de dados.
  2. Não existe tal coisa chamada {multi: true} em .find() . multi será passado como 3ª opção/arg para .atualizar() operações para atualizar vários documentos que correspondem aos critérios filtrados.