MongoDB: как запросить записи, где поле равно null или не установлено?
у меня есть Email
документ, который имеет sent_at
поля "дата":
{
'sent_at': Date( 1336776254000 )
}
если это Email
не было отправлено,sent_at
поле равно null или не существует.
мне нужно получить количество всех отправленных/неотправленных Emails
. Я застрял в попытке выяснить правильный способ запроса этой информации. Я думаю, что это правильный способ получить отправленный счет:
db.emails.count({sent_at: {$ne: null}})
но как я должен получить количество тех, которые не отправлены?
4 ответов
Если поле 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 }})
использование:
db.emails.count({sent_at: null})
который подсчитывает все письма, свойство sent_at которых равно null или не задано. Вышеуказанный запрос такой же, как и ниже.
db.emails.count($or: [
{sent_at: {$exists: false}},
{sent_at: null}
])