【问题标题】:Pymongo indexing with geospherePymongo 与 geosphere 索引
【发布时间】:2019-04-18 15:31:02
【问题描述】:

您好,提前感谢您的时间。我是 MongoDB 和 Pymongo 的新手,并且有以下代码在我尝试索引时为我提供了一个类型错误:“格式字符串的参数不足”。

import pymongo

connection = pymongo.MongoClient("localhost",27017)
collection = connection.labdb.hotels

def execute_query(query):
    for doc in collection.find(query):
        print(doc)

execute_query(query1)

collection.create_index(["location",pymongo.GEOSPHERE])
points=[[-122, 35], [-120, 35], [-120, 38], [-122, 38], [-122, 35]]
within = {"$geoWithin":{"$geometry" : {"type" : "Polygon", coordinates: 
[[[]]]}}}
query2 = {"location": within}
execute_query(query2) 

脚本在 3.7 spyder 编辑器上运行,并且之前已在 2.7 Python 版本上测试并成功运行。非常感谢任何帮助

【问题讨论】:

    标签: python mongodb indexing pymongo


    【解决方案1】:

    您忘记了 create_index 列表中的元组:

    collection.create_index([("location",pymongo.GEOSPHERE)])
    

    在“内部”行中,您忘记了“坐标”中的标记(也可能忘记了坐标内的点变量):

    within = {"$geoWithin":{"$geometry" : {"type" : "Polygon", "coordinates": [points]}}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-20
      • 2021-03-24
      • 2015-08-09
      • 1970-01-01
      • 2014-10-21
      • 2013-06-07
      • 2020-10-10
      • 2016-02-06
      相关资源
      最近更新 更多