Javascript Mongoose查询,带$near$或其他字段

Javascript Mongoose查询,带$near$或其他字段,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我试图通过查询$或在不同字段(包括有问题的$near查询)返回文档 模式 locationSchema{ ... beacon: String, access_point: String, gps: [], ... } locationSchema.index({ gps: '2dsphere' }); 查询 locations.find({ '$or': [ { gps: {

我试图通过查询$或在不同字段(包括有问题的$near查询)返回文档

模式

locationSchema{
    ...
    beacon: String,
    access_point: String,
    gps: [],
    ...
}

locationSchema.index({ gps: '2dsphere' });
查询

locations.find({
    '$or': [
        {
            gps: {
                '$near': {
                    '$geometry': {
                        type: 'Point',
                        coordinates: [
                            13.1313131,
                            -4.444444
                        ]
                    },
                    '$maxDistance': 50,
                    distanceField: 'distance',
                    spherical: true
                }
            }
        },
        {
            access_point: '88:A6:BB:26:95:11'
        },
        {
            access_point: '88:A6:C6:26:CC:21'
        }
    ]
},
function(err,locations){
    //DosomethingwithfoundLocations
});
如果我只使用
$near
输入执行查询,则会返回一个位置,如果我只使用
访问点的列表执行查询,则会返回一个位置,但在同时运行两个查询时不会返回

我假设这是一个bug,但是我是否可以让这种类型的查询正常工作


谢谢

根据文档,这不受支持。您可以阅读更多关于它的信息:

$or支持地理空间子句,但near子句除外(near子句包括$nearSphere和$near)$或不能与任何其他子句一起包含near子句


但是,您可以使用并传入
center
操作符来实现相同的目标。请记住,
geoinsin
不会对生成的数组进行排序。

我也有同样的问题,我们能不能一起使用near和其他元素进行查询?谢谢,我似乎错过了文档中的语句。作为替代方案,执行两个查询很简单。