gpt4 book ai didi

MongoDB:如何查询字段为空或未设置的记录?

转载 作者:IT老高 更新时间:2023-10-28 11:12:57 25 4
gpt4 key购买 nike

我有一个 Email 文档,其中有一个 sent_at 日期字段:

{
'sent_at': Date( 1336776254000 )
}

如果此 Email 尚未发送,则 sent_at 字段为空或不存在。

我需要获取所有已发送/未发送 电子邮件 的计数。我一直在试图找出查询这些信息的正确方法。我认为这是获取发送计数的正确方法:

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

但是我应该如何计算未发送的数量?

最佳答案

如果 sent_at 字段在未设置时不存在,则:

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

如果它存在并且为空,或者根本不存在:

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

如果它在那里并且为空:

db.emails.count({sent_at: { $type: 10 }})

Query for Null or Missing Fields MongoDB 手册的部分描述了如何查询空值和缺失值。

Equality Filter

The { item : null } query matches documents that either contain the item field whose value is null or that do not contain the item field.

db.inventory.find( { item: null } )

Existence Check

The following example queries for documents that do not contain a field.

The { item : { $exists: false } } query matches documents that do not contain the item field:

db.inventory.find( { item : { $exists: false } } )

Type Check

The { item : { $type: 10 } } query matches only documents that contain the item field whose value is null; i.e. the value of the item field is of BSON Type Null (type number 10) :

db.inventory.find( { item : { $type: 10 } } )

关于MongoDB:如何查询字段为空或未设置的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com