使用2 $ near运算符的mongodb查询。查找开始和目标位置附近的用户

时间:2015-10-04 19:12:55

标签: mongodb mongodb-query geospatial

我遇到一个问题,我需要在源上找到用户并根据他们的目的地位置聚合它们。我尝试使用多个$ near查询,如下所示:

db.getCollection('user_requests').find({"destGeoLoc":$near:{$geometry: {$type:"Point", coordinates:77.2432720999999987,28.5676954999999992]},$maxDistance:2000}},"sourceGeoLoc":{$near:$geometry: {$type:"Point",coordinates:77.2219549999999941,28.6423729999999992]},$maxDistance:2000}}, "match_status" : "no" })

它出现了以下错误:

error: {
"$err" : "Can't canonicalize query: BadValue Too many geoNear expressions",
"code" : 17287

}

现在我理解错误本身,但我似乎遇到了如何克服此错误的障碍。

1 个答案:

答案 0 :(得分:0)

我通过在源和目标上发布两个单独的$ near查询并获取ObjectId的集合交集来找出解决方案。这是原油,但有效。