Answers:
如果未设置send_at字段,则该字段不存在:
db.emails.count({sent_at: {$exists: false}})
如果它在那里并且为空,或者根本不存在:
db.emails.count({sent_at: null})
如果您只想计算sent_at
定义为的文档null
(不计算sent_at
未设置的文档):
db.emails.count({sent_at: { $type: 10 }})
find
与Plain一起使用时,null
它解释0.0
为as的值 ,null
并且此解决方案避免了这种情况
用:
db.emails.count({sent_at: null})
计数所有send_at属性为null或未设置的电子邮件。上面的查询与下面的相同。
db.emails.count($or: [
{sent_at: {$exists: false}},
{sent_at: null}
])
您也可以尝试以下操作:
db.emails.find($and:[{sent_at:{$exists:true},'sent_at':null}]).count()