sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:Jak se dotazovat na záznamy, kde je pole null nebo není nastaveno?

Pokud sent_at pole tam není, když není nastaveno, pak:

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

Jestli tam je a je null, nebo tam vůbec není:

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

Pokud je tam a má hodnotu null:

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

Sekce Query for Null or Missing Fields v příručce MongoDB popisuje, jak se dotazovat na hodnoty null a chybějící hodnoty.

Filtr rovnosti

{ item : null } dotaz odpovídá dokumentům, které buď obsahují pole položky, jehož hodnota je null nebo které neobsahují item pole.

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

Kontrola existence

Následující příklad se dotazuje na dokumenty, které neobsahují pole.

{ item : { $exists: false } } dotaz odpovídá dokumentům, které neobsahují item pole:

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

Kontrola typu

{ item : { $type: 10 } } dotaz odpovídá pouze dokumenty, které obsahují item pole, jehož hodnota je null; tj. hodnota pole položky je typu BSON Null (zadejte číslo 10 ):

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


  1. Načtěte pouze dotazovaný prvek v poli objektů v kolekci MongoDB

  2. Agregace MongoDB:Jak získat celkový počet záznamů?

  3. Procento podmínek NEBO shodných v mongodb

  4. Bitva o databáze NoSQL - Porovnání MongoDB a CouchDB