MongoDB: Как использовать свойство в поиске?

80
9

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

{
"_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" } )

Мне нужно написать запрос и использовать свойство radius из строки коллекции ("radius": 1) в запросе поиска следующим образом:

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

Но монго возвращается:

Ошибка выполнения JavaScript: ReferenceError: радиус не определен

Я попробовал db.user.find( { loc: { $geoWithin :{ $centerSphere: [ [0.7, 0.7 ], this.radius ]} } } )

спросил(а) 2021-01-19T20:25:19+03:00 9 месяцев, 1 неделя назад
1
Решение
79

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

ответил(а) 2021-01-19T20:25:19+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема