Mongodb: come interrogare "non null"? in un'area specifica


Puoi utilizzare la seguente sintassi per trovare tutti i documenti per i quali un campo specifico non è nullo in MongoDB:

 db.collection.find({" field_name ":{ $ne : null }}) 

Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.

Esempio 1: query per “non nullo” in un campo specifico

Supponiamo di avere un team di recupero con i seguenti documenti:

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

Possiamo usare il seguente codice per trovare tutti i documenti in cui il campo “posizione” non è nullo:

 db.teams.find({" position ":{ $ne : null }})

Questa query restituisce i seguenti documenti:

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

Si noti che gli unici documenti restituiti sono quelli il cui campo “posizione” non è nullo.

Esempio 2: query per “non null” (quando tutti i documenti non contengono il campo)

Supponiamo di avere un team di recupero con i seguenti documenti:

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

Tieni presente che il secondo documento nella raccolta non ha nemmeno un campo “posizione”.

Possiamo usare il seguente codice per trovare tutti i documenti in cui il campo “posizione” non è zero:

 db.teams.find({" position ":{ $ne : null }})

Questa query restituisce i seguenti documenti:

 { _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

{ _id: ObjectId("618bf18f35d8a762d3c2871a"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Poiché il secondo documento non ha nemmeno un campo “posizione”, non viene restituito.

Si noti inoltre che non vengono restituiti nemmeno gli altri due documenti che hanno valore nullo nel campo “posizione”.

Riepilogo : utilizzando la sintassi $ne:null , restituiamo solo i documenti per i quali esiste un campo specifico e non è nullo.

Risorse addizionali

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

MongoDB: come eseguire una query con un’espressione regolare “Mi piace”.
MongoDB: come verificare se il campo contiene una stringa
MongoDB: come aggiungere un nuovo campo a una raccolta
MongoDB: come rimuovere un campo da ciascun documento

Aggiungi un commento

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