sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Hvordan forespørger man efter poster, hvor feltet er null eller ikke angivet?

Hvis sent_at feltet er der ikke, når det ikke er indstillet, så:

db.emails.count({sent_at: {$exists: false}})

Hvis det er der og null, eller slet ikke der:

db.emails.count({sent_at: null})

Hvis det er der og null:

db.emails.count({sent_at: { $type: 10 }})

Sektionen Forespørgsel efter null eller manglende felter i MongoDB-manualen beskriver, hvordan du forespørger efter null og manglende værdier.

Ligestillingsfilter

{ item : null } forespørgsel matcher dokumenter, der enten indeholder elementfeltet, hvis værdi er null eller som ikke indeholder item felt.

db.inventory.find( { item: null } )

Eksistenstjek

Følgende eksempel forespørger efter dokumenter, der ikke indeholder et felt.

{ item : { $exists: false } } forespørgsel matcher dokumenter, der ikke indeholder item felt:

db.inventory.find( { item : { $exists: false } } )

Typekontrol

{ item : { $type: 10 } } forespørgslen matcher kun dokumenter, der indeholder item felt, hvis værdi er null; dvs. værdien af ​​varefeltet er af BSON Type Null (typenummer 10 ) :

db.inventory.find( { item : { $type: 10 } } )


  1. 3 måder at vælge rækken med den maksimale værdi i SQL

  2. Sådan opdaterer du eksisterende dokumenter i MongoDB

  3. Sporing af MongoDB-hukommelsesbrug

  4. Henviser til et andet skema i Mongoose