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