首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoose when-query or or-query

Mongoose when-query or or-query
EN

Stack Overflow用户
提问于 2016-08-05 17:09:15
回答 1查看 70关注 0票数 0

我有一个模式,看起来像这样:

代码语言:javascript
复制
var UserSchema = new Schema({
    name: {type : String, required: true},
    location_a: {type: [Number], default: [0,0], index: '2dsphere'},
    location_b: {type: [Number], default: [0,0], index: '2dsphere'}
});

我的搜索输入有位置和距离。现在,我想让拥有location_a或location_b的用户接近搜索的位置。

我尝试了一个类似如下的查询:

代码语言:javascript
复制
query = query.and([
        { $or: [
            query.where('location_a').near({
                center: {type: 'Point', coordinates: [long, lat]},
                maxDistance: distance * 1000, spherical: true
            }),
            query.where('location_b').near({
                center: {type: 'Point', coordinates: [long, lat]},
                maxDistance: 100 * 1000, spherical: true
            })
        ]}
    ]);

但它使我的应用程序崩溃:"RangeError:超过最大调用堆栈大小“

EN

回答 1

Stack Overflow用户

发布于 2016-08-05 17:50:46

我在查询中使用了错误的格式。这就是你怎么做的。

代码语言:javascript
复制
query = query.and([
        { $or: [
            {
                "at_student_location": {
                    "$near": [12.5386, 41.884],
                    "$maxDistance": 1000
                }
            }
            ,
            {
                "at_home_location": {
                    "$near": [12.5386, 41.884],
                    "$maxDistance": 1000
                }
            }
        ]}
    ]);

问题是mongo在每个查询中只接受一个geoNear表达式,所以不可能做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38785466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档