我有一个Mongo集合需要更新,我正在尝试使用集合.更新命令无效。在
代码如下:
import pymongo
from pymongo import MongoClient
client = MongoClient()
db = client.SensorDB
sensors = db.Sensor
for sensor in sensors.find():
lat = sensor['location']['latitude']
lng = sensor['location']['longitude']
sensor['location'] = {
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [lat ,lng]
},
"properties": {
"name": sensor['name']
}
}
sensors.update({'webid': sensor['webid']} , {"$set": sensor}, upsert=True)
但是,运行此命令会得到以下结果:
^{pr2}$
更改此行:
为此:
^{pr2}$它的作用是阻止Mongo返回
_id
字段,因为您没有使用它,并且它会在以后的update()
调用中导致问题,因为您无法“更新”_id
。在更好的解决方案(只写需要的数据)
编辑: 正如Loïc Faure Lacroix所提到的,您的案例中也不需要
upsert
标志—在本例中,您的代码总是在更新,而从不插入。在编辑2: 将
_id
括在第一个解决方案的引号中。在相关问题 更多 >
编程相关推荐