我有一个查询应该执行以下操作: 取两组坐标并返回任何坐标附近的位置。
我正在使用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
的位置(即start
或end
)进行搜索时,我能够获得结果。这就是我如何确定问题出在$or
。
mongoDB / mongoose是否支持使用$or
进行地理空间搜索,或者我做错了什么?
答案 0 :(得分:0)
似乎$or
不起作用,所以我现在选择运行2个查询,然后评估每个查询的结果以便返回计数。它对我有用,因为我不需要实际计数,但我需要知道在每个点的某个距离内是否有任何可用的位置。
如果有人遇到类似问题,并将此方法用作解决方法,请记住将第二个查询嵌套在第一个查询的回调中。如果您要查询的位置超过2个,这显然会出现问题。