Mongodb: como consultar “não nulo”? em uma área específica
Você pode usar a seguinte sintaxe para localizar todos os documentos para os quais um campo específico não é nulo no MongoDB:
db.collection.find({" field_name ":{ $ne : null }})
Os exemplos a seguir mostram como usar essa sintaxe na prática.
Exemplo 1: Consulta “não nulo” em um campo específico
Vamos supor que temos uma equipe de cobrança com os seguintes documentos:
db.teams.insertOne({team: " Mavs ", position: null , points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: null , points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Podemos usar o seguinte código para encontrar todos os documentos onde o campo “posição” não é nulo:
db.teams.find({" position ":{ $ne : null }})
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("618bf18f35d8a762d3c28717"), team: 'Spurs', position: 'Guard', points: 22 } { _id: ObjectId("618bf18f35d8a762d3c28719"), team: 'Warriors', position: 'Forward', points: 26 } { _id: ObjectId("618bf18f35d8a762d3c2871a"), team: 'Cavs', position: 'Guard', points: 33 }
Observe que os únicos documentos retornados são aqueles cujo campo “posição” não é nulo.
Exemplo 2: Consulta “not null” (quando todos os documentos não contêm o campo)
Vamos supor que temos uma equipe de cobrança com os seguintes documentos:
db.teams.insertOne({team: " Mavs ", position: null , points: 31 }) db.teams.insertOne({team: " Spurs ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: null , points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Observe que o segundo documento da coleção nem possui o campo “posição”.
Podemos usar o seguinte código para encontrar todos os documentos onde o campo “posição” não é zero:
db.teams.find({" position ":{ $ne : null }})
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("618bf18f35d8a762d3c28719"), team: 'Warriors', position: 'Forward', points: 26 } { _id: ObjectId("618bf18f35d8a762d3c2871a"), team: 'Cavs', position: 'Guard', points: 33 }
Como o segundo documento nem possui o campo “posição”, ele não é retornado.
Observe também que os outros dois documentos que possuem valor nulo no campo “posição” também não são retornados.
Resumo : Usando a sintaxe $ne:null , retornamos apenas documentos para os quais existe um campo específico e não é nulo.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:
MongoDB: Como consultar com uma expressão regular “Like”
MongoDB: Como verificar se o campo contém uma string
MongoDB: Como adicionar um novo campo a uma coleção
MongoDB: Como remover um campo de cada documento