Mongodb: como verificar se o campo existe
Você pode usar os seguintes métodos para verificar se existe um campo em uma coleção no MongoDB:
Método 1: verifique se o campo existe
db.myCollection.find({ " myField ": { $exists : true } })
Este método verifica se “myField” existe na coleção chamada myCollection . Nesse caso, ele retorna todos os documentos que contêm o nome do campo. Caso contrário, não retornará nada.
Método 2: verifique se o campo incorporado existe
db.myCollection.find({ " myField.embeddedField ": { $exists : true } })
Este método verifica se o nome do campo “embeddedField” no campo “myField” existe na coleção chamada myCollection . Nesse caso, ele retorna todos os documentos que contêm o nome do campo. Caso contrário, não retornará nada.
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", class: {conf: "Western", div: "A"}, points: 31 }) db.teams.insertOne({team: "Spurs", class: {conf: "Western", div: "A"}, points: 22 }) db.teams.insertOne({team: "Jazz", class: {conf: "Western", div: "B"}, points: 19 }) db.teams.insertOne({team: "Celtics", class: {conf: "Eastern", div: "C"}, points: 26 })
Exemplo 1: Verifique se o campo existe
O código a seguir mostra como verificar se o nome do campo “pontos” existe na coleção de equipes :
db.teams.find({ " points ": { $exists : true } })
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Como existe o nome do campo “pontos”, cada documento que contém o campo “pontos” é retornado.
Suponha que, em vez disso, verifiquemos se o nome do campo “steals” existe na coleção de times :
db.teams.find({ " steals ": { $exists : true } })
Como este campo não existe, nenhuma saída será retornada.
Exemplo 2: Verifique se o campo incorporado existe
O código a seguir mostra como verificar se o nome do campo integrado “div” existe no campo “class” da coleção de equipes :
db.teams.find({ " class.div ": { $exists : true } })
Esta consulta retorna os seguintes documentos:
{ _id: ObjectId("6203d10c1e95a9885e1e7637"), team: 'Mavs', class: { conf: 'Western', div: 'A' }, points: 31 } { _id: ObjectId("6203d10c1e95a9885e1e7638"), team: 'Spurs', class: { conf: 'Western', div: 'A' }, points: 22 } { _id: ObjectId("6203d10c1e95a9885e1e7639"), team: 'Jazz', class: { conf: 'Western', div: 'B' }, points: 19 } { _id: ObjectId("6203d10c1e95a9885e1e763a"), team: 'Celtics', class: { conf: 'Eastern', div: 'C' }, points: 26 }
Como o nome do campo incorporado “div” existe no campo “class”, todo documento que contém o campo incorporado “div” é retornado.
Suponha que, em vez disso, verifiquemos se o nome do campo integrado “division” existe no campo “class” na coleção de times :
db.teams.find({ " class.division ": { $exists : true } })
Como esse campo interno não existe, nenhuma saída será retornada.
Nota : Você pode encontrar a documentação completa da função $exists aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:
MongoDB: Como listar todos os nomes de campos
MongoDB: Como renomear campos
MongoDB: Como adicionar novos campos
MongoDB: Como excluir campos