MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:Wie kann nach Datensätzen abgefragt werden, bei denen das Feld null oder nicht festgelegt ist?

Wenn der sent_at Feld ist nicht da, wenn es nicht gesetzt ist, dann:

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

Wenn es da und null oder gar nicht da ist:

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

Wenn es vorhanden und null ist:

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

Der Abschnitt „Abfrage nach Null- oder fehlenden Feldern“ des MongoDB-Handbuchs beschreibt, wie nach Null- und fehlenden Werten abgefragt wird.

Gleichheitsfilter

Der { item : null } -Abfrage stimmt mit Dokumenten überein, die entweder das Artikelfeld enthalten, dessen Wert null ist oder die das item nicht enthalten Feld.

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

Existenzprüfung

Das folgende Beispiel sucht nach Dokumenten, die kein Feld enthalten.

Der { item : { $exists: false } } Abfrage stimmt mit Dokumenten überein, die das item nicht enthalten Feld:

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

Typprüfung

Der { item : { $type: 10 } } Suchanfrage passt nur Dokumente, die das item enthalten Feld, dessen Wert null ist; d.h. der Wert des Item-Feldes ist vom BSON-Typ Null (geben Sie die Zahl 10 ein ) :

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