2015-10-04 2 views
0

У меня проблема, когда мне нужно найти пользователей в источнике и заполнить их в соответствии с местами назначения. Я попытался с помощью многократного $ рядом запросов, которые перечислены ниже:

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

Я выяснил решение, разместив два отдельных запроса $ near в обоих источниках и получателях, и установив пересечение объектов ObjectId. Это грубо, но работает.

Смежные вопросы