在 MongoDB 中,我想使用 $gt 和 $lt 比较运算符,其中的值可以是null。当操作员不使用null时,我查找了文档但没有找到。在这两种情况下,它都没有返回任何文档(尽管 $ne、$gte 和 $lte 确实返回了文档;这意味着存在既等于又不等于null的文档)。
我希望 $gt 基本上像 $ne 一样运行(因为null类型的Mongo comarison 订单非常低)并且 $lt 出于同样的原因不返回任何内容。
我希望这会起作用,因为我传递给查询的值是可变的(可能是null),我不想为null写一个特殊情况。
给定以下集合,我所期待的示例:
{
id: 1,
colNum: null
}
{
id: 2,
colNum: 72
}
{
id: 3
}
我期望以下查询:
db.testtable.find( { "colNum" { $gt : null } } )
返回:
{
id: 2,
colNum: 72
}
然而,什么都没有返回。
是否有原因 $gt 和 $lt 似乎不适用于null,或者它是 MongoDB 错误,还是它实际上应该工作并且可能存在用户错误?