Olá pessoal, tudo bem?
Peço ajuda para desenvolver uma query no mongoDB que:
- calcule o tamanho de elementos do array 'host':
- retorne apenas os documentos que possuem array (host) > que 2 elementos AND status = false,
- retorne TODOS os objetos com TODOS os campos que possuem os parametros acima.
exemplo do objeto:
{
"_id" : ObjectId("XXXXXXXXX"),
"content" : "ASdkJAHKDA",
"time" : ISODate("2020-01-24T17:20:00.023Z"),
"sentEmail" : {
"host" : [
"smtp.XXX",
"smtp.YYYY",
],
"status" : false,
"date" : ISODate("2020-01-27T14:36:08.311Z",
}
tentativas:
- db.getCollection('emails').find({'sentEmail.status': false}, {$where:'sentEmail.host >= 2'})
Problema: Não retorna todos os campos do objeto, apenas o ID
- db.getCollection('emails').find({'sentEmail.host.1': {$exists:true}, 'sentEmail.status': false})
Problema: Retorna apenas o primeiro objeto encontrado.