回答:
設定されていないときに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 }})
find
プレーンnull
で使用すると0.0
asのような値を解釈 しnull
、このソリューションでこれを回避するため、賛成です
これを試すこともできます:
db.emails.find($and:[{sent_at:{$exists:true},'sent_at':null}]).count()