Mongodb: come verificare se il campo esiste


Puoi utilizzare i seguenti metodi per verificare se esiste un campo in una raccolta in MongoDB:

Metodo 1: controlla se il campo esiste

 db.myCollection.find({ " myField ": { $exists : true } })

Questo metodo controlla se “myField” esiste nella raccolta denominata myCollection . In tal caso, restituisce tutti i documenti contenenti il nome del campo. In caso contrario, non restituisce nulla.

Metodo 2: controlla se il campo incorporato esiste

 db.myCollection.find({ " myField.embeddedField ": { $exists : true } })

Questo metodo controlla se il nome del campo “embeddedField” nel campo “myField” esiste nella raccolta denominata myCollection . In tal caso, restituisce tutti i documenti contenenti il nome del campo. In caso contrario, non restituisce nulla.

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con un team di recupero con i seguenti documenti:

 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 })

Esempio 1: controlla se il campo esiste

Il codice seguente mostra come verificare se il nome del campo “points” esiste nella raccolta Teams :

 db.teams.find({ " points ": { $exists : true } })

Questa query restituisce i seguenti documenti:

 { _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 }

Poiché il nome del campo “punti” esiste, viene restituito ogni documento contenente il campo “punti”.

Supponiamo invece di verificare se il nome del campo “steals” esiste nella raccolta Teams :

 db.teams.find({ " steals ": { $exists : true } })

Poiché questo campo non esiste, non viene restituito alcun output.

Esempio 2: controlla se esiste un campo incorporato

Il codice seguente mostra come verificare se il nome del campo integrato “div” esiste nel campo “class” della raccolta team :

 db.teams.find({ " class.div ": { $exists : true } })

Questa query restituisce i seguenti documenti:

 { _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 }

Poiché il nome del campo incorporato “div” esiste nel campo “classe”, viene restituito ogni documento contenente il campo incorporato “div”.

Supponiamo invece di verificare se il nome del campo integrato “division” esiste nel campo “class” nella raccolta team :

 db.teams.find({ " class.division ": { $exists : true } })

Poiché questo campo integrato non esiste, non viene restituito alcun output.

Nota : puoi trovare la documentazione completa per la funzione $esiste qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:

MongoDB: come elencare tutti i nomi dei campi
MongoDB: come rinominare i campi
MongoDB: come aggiungere nuovi campi
MongoDB: come eliminare i campi

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *