Mongoose查询$ $或其他字段

我试图通过执行查询$或不同的字段,包括$问题附近的查询来返回文档。

架构

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 }); 

如果我只使用$nearinput进行查询,则按照预期的方式返回一个位置,如果仅使用access_point的列表执行查询,则返回一个位置,但在两个查询都在相同的位置运行时不会时间。

我假设这是一个错误,但无论如何,我可以得到这种types的查询工作?

谢谢

根据文档,这不被支持。 你可以阅读更多关于它在这里 :

$或支持geospatial子句,near子句有以下例外(near子句包括$ nearSphere和$ near)。 $或者不能包含任何其他子句的near子句。

但是,您可以使用geoWithin并通过center运营商来实现相同的目标。 请记住,虽然geoWithin不sorting结果数组。