0

我有一个查询应该执行以下操作:获取两组坐标并返回任何坐标附近的位置。

我正在使用 Mongoose.js 开发 Node.js。

原始查询代码如下(在我尝试使用query.or()语法之前:

query.or([{geoNear: "loc", near: start, spherical: true},{geoNear: "loc", near: end}]);

问题似乎正在使用,$or因为我最初尝试将代码设置为:

            that.count({
                _cat: _cat ,
                $or: [
                    {
                        loc: { $nearSphere: start }
                    },
                    {
                        loc: { $nearSphere: end }
                    }
                ]}, function(err, c) {
                    // do something
                });

当我使用没有$or(即startend)的位置进行搜索时,我能够获得结果。这就是我确定问题出在$or.

mongoDB/mongoose 是否支持使用$or地理空间搜索,还是我做错了什么?

4

1 回答 1

0

似乎这$or不起作用,所以我现在选择运行 2 个查询,然后评估每个查询的结果以返回计数。它对我有用,因为我不需要实际计数,但我需要知道在每个点的一定距离内是否有任何可用位置。

如果有人遇到类似问题,并使用此方法作为解决方法,请记住将第二个查询嵌套在第一个查询的回调中。当您要查询的位置超过 2 个时,这显然会更成问题。

于 2012-12-12T09:01:15.163 回答