$or condition 可能在 mongodb 1.2.2 与 Mongoose 和 MEAN 堆栈上失败?

$or condition possibly failing on mongodb 1.2.2 with Mongoose and MEAN stack?

我正在为我的 MEAN.JS 应用程序使用 mongodb。 我在本地开发机器上安装了 mongodb version 2.6.*。在远程服务器上,我安装了 mongodb 版本 1.2.2。我正在使用 Mongoose 作为我的 ORM。

所有其他代码似乎在 mongo 的两个版本上都可以正常工作,但以下代码除外:

RoomAvailability.find({
   'resort_id': checklist.resort_id,
            $or: [{
                'start_date': {
                    $lte: checklist.end_date
                }
            }, {
                'end_date': {
                    $gte: checklist.start_date
                }
            }]
        }, function (err, booked_rooms) {});

这个查找查询似乎在我的本地机器上提取了正确的数据。在远程服务器上,它 returns 是同一组数据的空数组。

有语法问题吗?请指导。

$or 运算符是在 1.6 版本中添加的(参见 docs),因此如果您的远程服务器是 运行 1.2.2,则它不支持 $or.您需要升级该服务器才能使用 $or

1.2.2 是真正 MongoDB 的旧版本。