Mongodb: como usar “not equal” em consultas
Você pode usar o operador $ne (que significa “diferente”) no MongoDB para encontrar documentos onde um campo não é igual a um determinado valor.
Este operador usa a seguinte sintaxe básica:
db.myCollection.find({' team ': { $ne : " Mavs "}})
Este exemplo específico procura todos os documentos na coleção chamada myCollection onde o campo team não é igual a “Mavs”.
Você também pode usar o operador $nin (que significa “não está”) para localizar documentos nos quais um campo não é igual a nenhum valor em uma lista.
Este operador usa a seguinte sintaxe básica:
db.myCollection.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})
Este exemplo específico procura todos os documentos na coleção chamada myCollection onde o campo team não é igual a “Mavs”, “Cavs” ou “Spurs”.
Os exemplos a seguir mostram como usar cada método na prática com uma equipe de coleta com os seguintes documentos:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12}) db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})
Exemplo 1: consulta “Diferente”
O código a seguir mostra como encontrar todos os documentos na coleção de equipes onde o campo “team” não é igual a “Mavs”:
db.teams.find({' team ': { $ne : " Mavs "}})
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("6203ec0e1e95a9885e1e7658"), team: 'Cavs', points: 23, rebounds: 9 } { _id: ObjectId("6203ec0e1e95a9885e1e7656"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("6203ec0e1e95a9885e1e7655"), team: 'Spurs', points: 35, rebounds: 12 } { _id: ObjectId("6203ec0e1e95a9885e1e7657"), team: 'Warriors', points: 25, rebounds: 5 }
Observe que todos os documentos da coleção de equipes são retornados onde o campo de equipe não é igual a “Mavs”.
Nota : O operador $ne diferencia maiúsculas de minúsculas.
Exemplo 2: consulta “Não está”
O código a seguir mostra como encontrar todos os documentos na coleção times onde o campo team não é igual a “Mavs”, “Cavs” ou “Spurs”:
db.teams.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("6203ec0e1e95a9885e1e7657"), team: 'Warriors', points: 25, rebounds: 5 }
Observe que cada documento na coleção times é retornado quando o campo team não é igual a “Mavs”, “Cavs” ou “Spurs”.
Nota nº 1 : você pode encontrar a documentação completa da função $ne aqui .
Nota nº 2 : você pode encontrar a documentação completa da função $nin aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:
MongoDB: Como verificar se o campo contém uma string
MongoDB: Como procurar por “not null” em um campo específico
MongoDB: Como substituir strings