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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *