我想用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