У меня есть модель, как это:Loopback: около фильтра на объекте подполе
{
name: 'My Favorite Shop',
address:{
location: [12.534 /* longitude */ ,41.9221/* latitude */]
}
}
Документы хранятся в базе данных MongoDB, и, таким образом, я хотел бы запросить их, как:
//assuming shops to be the name of the containing model
app.models.shops.find({
where: {
'address.location': {lat: 13, lng: 40}
}
}, callback);
Проблема в том, что этот запрос не получил никакого результата. Я думаю, это из-за природы поля location
, которое вложено в address
, но я не смог проверить это.
Любая идея?
Благодаря
UPDATE: он вышел я забыл установить enableGeoIndexing
свойство в определении источника данных. После выполнения запроса возникает следующая ошибка:
{"name":"MongoError","message":"Unable to execute query: error processing query: ns=acidata-dev.pos limit=25 skip=0\nTree: GEONEAR field=address.location maxdist=1.79769e+308 isNearSphere=0\nSort: {}\nProj: {}\n planner returned error: unable to find index for $geoNear query","$err":"Unable to execute query: error processing query: ns=acidata-dev.pos limit=25 skip=0\nTree: GEONEAR field=address.location maxdist=1.79769e+308 isNearSphere=0\nSort: {}\nProj: {}\n planner returned error: unable to find index for $geoNear query","code":17007}