我想用pymongo(版本3.0.3)通過其ID來更新現有的mongodb文檔。然而沒有更新與我的Python代碼。有誰知道爲什麼..?使用Pymongo更新Mongo文檔
這是我想運行的mongodb腳本,這可以從mongo客戶端Robomongo正常工作。
db.mycollection.update(
{ '_id': ObjectId("55d49338b9796c337c894df3") },
{ $set: { "details.model": "14Q22" } },
upsert=false
)
但是這個python代碼不起作用。
client = pymongo.MongoClient("1.1.1.1", 27017)
db = client.mydb
db.mycollection.update(
{ '_id': "55d49338b9796c337c894df3" },
{ '$set': { "details.model": "14Q22" } },
upsert=False
)
它返回
{u'n': 0, u'nModified': 0, u'ok': 1, 'updatedExisting': False}
也許你可以試試update_one? http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_one – sihrc
即使此ID已存在,update_one也會添加一個新文檔。而第一個mongo腳本正確添加了details.model。我需要以不同的方式指定mongodb ID嗎? –
'client [「mydb」] [「mycollection」]。update({'_id':「55d49338b9796c337c894df3」}, {'$ set':{「details.model」:「14Q22」}}, upsert = False )' – dsgdfg