用geosph索引Pymongo

2024-03-29 00:52:26 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,提前感谢您的时间。我是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上测试并成功运行任何版本非常感谢您的帮助


Tags: 代码类型executedocmongodb时间locationconnection
1条回答
网友
1楼 · 发布于 2024-03-29 00:52:26

您在create\u index列表中忘记了一个元组:

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

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

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

相关问题 更多 >