我正在使用 Studio3T 运行 MongoDB,但我是初学者。我有一个 publication.notes 字段,用于从报告中排除项目,通常不使用此字段,因此大多数文档没有填充此字段,我们一直在为报告运行下面的代码。(publication.notes 是最后一行)
{
$and: [
{
"warehouses.code": "RSDMAIN"
}
,
{
"warehouses.0.quantity": {
$gt: NumberInt(0)
}
}
,
{
"images.0.image": {
$exists: false
}
}
,
{
"featured_image.slug": {
$exists: false
}
}
,
{
"publication.status": {
$ne: "discontinued"
}
}
,
{
"publication.status": {
$ne: "rejected"
}
}
,
{
"product_type": {
"$in":[
"standard" ,
null
]
}
}
,
{
"publication_notes": {
$exists: false
}
}
]
}
问题是我们有一小部分文档确实填充了发布说明,但它保持为空。我希望我的报告同时包含空文档和不存在的文档,同时仍然排除具有实际文本的文档。我尝试的一切都让我要么为空,要么为 DNE。
我尝试使用 "publication.notes": { $not: { $type: 2 } } ,但它们返回与 "publication_notes": { $exists: false } 相同的报告,这让我认为它看到了什么即在字段中作为字符串,即使它为空。