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

MongoDB encontra documentos onde todos os elementos da matriz são iguais a algum valor


Você pode usar $elemMatch operador de consulta. Ele só precisa de uma consulta.
 db.test.find( { arr:  { $not: { $elemMatch: { $ne: null } } } } )

"$elemMatch" + "$ne"

Esta parte inclui todos os documentos onde arr array não tem pelo menos um valor nulo.

Estes são todos os documentos que têm pelo menos um valor não nulo.

$not

Esta parte irá manter todos os documentos que não estão em "$elemMatch" + "$ne" .

Estes são todos os documentos que possuem todos os seus valores como null .

Acomode casos extremos em que o campo não existe para garantir que as coisas funcionem conforme o esperado.