Вопрос по mongodb – MongoDB: Как запросить записи, где поле пустое или не задано?

94

у меня естьEmail документ, который имеетsent_at поле даты:

{
  'sent_at': Date( 1336776254000 )
}

Если этоEmail не был отправлен,sent_at Поле либо пустое, либо не существует.

Мне нужно получить количество всех отправленных / неотправленныхEmails, Я застрял в попытке выяснить правильный способ запроса этой информации. Я думаю, что это правильный способ получить количество отправленных:

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

Но как мне получить количество отправленных сообщений?

Ваш Ответ

4   ответа
12

sent_atnullsent_at

db.emails.count({sent_at: { $type: 10 }})
Error: User Rate Limit ExceededfindError: User Rate Limit ExceedednullError: User Rate Limit Exceeded0.0Error: User Rate Limit ExceedednullError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
6

Error: User Rate Limit Exceeded

{ "sent_at": null }
157

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

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

8

Error: User Rate Limit Exceeded

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

Error: User Rate Limit Exceeded

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

Похожие вопросы