[PYTHON] Rechercher les données les plus proches géographiquement (MongoDB)

Bonjour. Voici un exemple de fonction qui recherche les données du voisin le plus proche à partir d'un point donné en utilisant MongoDB + Python (pymongo) (en supposant l'indexation `` 2dsphere '').

$maxdistanceAussi donné, et si rien n'est recherché, définino_dataJ'ai essayé de revenir. Changé pour utiliser l'API recommandée[^1]。

[^ 1]: Dans cet exemple, si vous utilisez $ geoNear```, `` .count () `, il est actuellement obsolète. Vous pouvez également vous référer à "Organisation des requêtes d'index géospatial MongoDB".

NO_DATA = {}
def 2dsphere_near():
  point = [135.0, 35.0]
  query = {"loc": {"$nearSphere": {
           "$geometry": {"type": "Point", "coordinates": point},
           "$maxDistance": 1000}}}  # in meter
  for nearest_data in mycollection.find(query).limit(1):
    return nearest_data
  return NO_DATA

Recommended Posts

Rechercher les données les plus proches géographiquement (MongoDB)
Recherche approximative du voisin le plus proche pour une analyse d'image similaire (pour les débutants) (1)