как сохранить местоположение в поле Point с помощью Mon go Engine и получить ближайшие 5 ресторанов вокруг местоположения - PullRequest
0 голосов
/ 07 мая 2020

Я новичок в mongoengine и пытаюсь сохранить данные о местоположении в MongoDB с помощью mongoengine, я делаю глупую ошибку, но не могу понять.

Мое требование - хранить данные о местоположении в MongoDB и получать все рестораны в радиусе 1000 метров вокруг местоположения мобильного устройства

Мой класс модели

from mongoengine import *

class ResLocation(Document): id = IntField(required=True) loc = PointField(required=False) updated_date_time = DateTimeField(default=datetime.datetime.utcnow)

В views.py, сохраняющем местоположение

`def store_restra_location(id, lat, lon):
location = {type: "Point", "coordinates": [lat, lon]}
res_location = ResLocation(id=id, loc=location)
res_location.save()`

Я полностью нуб, имея дело с Mon go с mongoengine. Пожалуйста, предоставьте решение для достижения это

1 Ответ

0 голосов
/ 08 мая 2020

Я могу решить проблему, я использовал библиотеку под названием geo json pip install geo json

from geojson import Point

Для сохранения

location = Point((Decimal(lat), Decimal(lon)))

...