2013-05-10 3 views
2

У меня есть коллекция пользователя:MongoDB: Как использовать свойство в поиске?

{ 
    "_id": { "$oid" : "514C438232F5699004000014" }, 
    "gender": 1, 
    "loc": { 
    "coordinates": [ 
     0.777084, 
     0.701690 
    ], 
    "type": "Point" 
    }, 
    "name": "H1", 
    "radius": 1 
}, 

{ 
    "_id": { "$oid" : "514C438232F5699004000014" }, 
    "gender": 1, 
    "loc": { 
    "coordinates": [ 
     0.677084, 
     0.701690 
    ], 
    "type": "Point" 
    }, 
    "name": "H2", 
    "radius": 0.4 
} 

db.user.ensureIndex({ loc : "2dsphere" }) 

Мне нужно написать запрос и использовать радиус свойства из строки коллекции («радиус»: 1) в находят запрос, как это:

db.user.find({ loc: { $geoWithin :{ $centerSphere : [ [0.7, 0.7 ] , radius ]} } }) 

Но Mongo возвращается:

JavaScript execution failed: ReferenceError: radius is not defined

Я попытался db.user.find({ loc: { $geoWithin :{ $centerSphere : [ [0.7, 0.7 ] , this.radius ]} } })

ответ

0

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

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