我遇到一个问题,我需要在源上找到用户并根据他们的目的地位置聚合它们。我尝试使用多个$ 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
}
现在我理解错误本身,但我似乎遇到了如何克服此错误的障碍。
答案 0 :(得分:0)
我通过在源和目标上发布两个单独的$ near查询并获取ObjectId的集合交集来找出解决方案。这是原油,但有效。