Ответ 1
Если поле sent_at не существует, если оно не установлено, то:
db.emails.count({sent_at: {$exists: false}})
Если его там и null или вообще нет:
db.emails.count({sent_at: null})
У меня есть документ Email
, у которого есть поле даты sent_at
:
{
'sent_at': Date( 1336776254000 )
}
Если этот Email
не был отправлен, поле sent_at
либо является нулевым, либо несуществующим.
Мне нужно получить счетчик всех отправленных/неотправленных Emails
. Я застрял в попытке выяснить правильный способ запроса этой информации. Я думаю, что это правильный способ получить посланный счетчик:
db.emails.count({sent_at: {$ne: null}})
Но как мне получить счет тех, которые не отправлены?
Если поле sent_at не существует, если оно не установлено, то:
db.emails.count({sent_at: {$exists: false}})
Если его там и null или вообще нет:
db.emails.count({sent_at: null})
Если вы хотите ТОЛЬКО подсчитывать документы с sent_at
, определенные со значением null
(не считайте документы с sent_at
не установлены):
db.emails.count({sent_at: { $type: 10 }})
Кажется, вы можете просто сделать одну строку:
{ "sent_at": null }
Использование:
db.emails.count({sent_at: null})
Что подсчитывает все электронные письма, чье свойство send_at имеет значение null или не задано. Вышеприведенный запрос аналогичен приведенному ниже.
db.emails.count($or: [
{sent_at: {$exists: false}},
{sent_at: null}
])