not empty and mongodb null mongodb-query exists

empty - MongoDB: ¿Cómo consultar los registros donde el campo es nulo o no está establecido?



mongodb not null (4)

Tengo un documento de Email que tiene un campo de fecha de sent_at :

{ ''sent_at'': Date( 1336776254000 ) }

Si este Email no se ha enviado, el campo sent_at es nulo o inexistente.

Necesito obtener el recuento de todos los Emails enviados / enviados. Estoy atascado tratando de descubrir la forma correcta de consultar esta información. Creo que esta es la forma correcta de obtener el conteo enviado:

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

Pero, ¿cómo debo obtener el recuento de los que no se envían?


Parece que puedes hacer una sola línea:

{ "sent_at": null }


Si el campo sent_at no está allí cuando no está configurado, entonces:

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

Si está allí y nulo, o no existe en absoluto:

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

Consulte aquí para consultar y nulo


Si solo desea contar los documentos con sent_at definido con un valor null (no cuente los documentos con sent_at no configurado):

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


Utilizar:

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

Que cuenta todos los correos electrónicos cuya propiedad sent_at es nula o no está establecida. La consulta anterior es la misma que a continuación.

db.emails.count($or: [ {sent_at: {$exists: false}}, {sent_at: null} ])