【问题标题】:Mongoosejs: using query.or() with geospatial queryMongoosejs:将 query.or() 与地理空间查询一起使用
【发布时间】:2012-11-29 21:32:24
【问题描述】:

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

我正在使用 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 进行地理空间搜索,还是我做错了什么?

【问题讨论】:

    标签: mongoose geospatial mongodb-query


    【解决方案1】:

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

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

    【讨论】:

    • 您有没有找到一个解决方案来使用多个可选位置进行单个地理搜索?我遇到了类似的问题。
    • 我真的不记得我最后做了什么。我查看了我的代码库,并没有看到$or 的踪迹,所以我肯定找到了一种解决方法。 Mongo 206 现在支持将$or 与地理位置数据结合使用
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 2013-09-25
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多