我正在尝试浏览集合中的记录,其中坐标字段中没有经度/纬度信息。使用 Google 的geocode()
方法,我选择具有位置信息的记录以转换为坐标,然后更新该coordinates
字段中的新值,这本来是以前null
的 .
使用该find()
方法,我得到了相关的记录,但是这段代码似乎没有被执行,即没有用坐标信息更新记录。这是代码:
cursor = coll.find(
{"$and": [
{"coordinates": {"$type":10}},
{"place": {"$ne": None}}
]},
{"coordinates": 1, "place": 1, "time_normal": 1, "_id": 1}, tailable = True, timeout = False)
while cursor.alive:
counter=0
g = geocoders.Google()
try:
doc = cursor.next()
current_id = doc['_id']
counter+=1
print doc
placeName = doc['place']['full_name']
loc = g.geocode(placeName)
coll.update({"_id" : current_id},{"$set": {"coordinates": loc[1]}})
print doc
time.sleep(0.15)
except (ValueError, geocoders.google.GQueryError):
pass
except StopIteration:
break
我不明白为什么该字段没有被更新。我注意到print counter
返回 0。
谢谢