Python,CouchDb:如何按ID更新现有文档

时间:2014-05-11 17:45:24

标签: python python-2.7 couchdb bottle couchdb-python

我正在尝试按ID更新现有文档。我的目的是通过它的id找到doc,然后使用“json”中的新值更改其“firstName”,然后将其更新到CouchDB数据库中。 这是我的代码:

def updateDoc(self, id, json):
    doc = self.db.get(id)
    doc["firstName"] = json["firstName"]
    doc_id, doc_rev = self.db.save(doc)
    print doc_id, doc_rev
    print "Saved"
//"json" is retrieved from PUT request (request.json)

self.db.save(doc)我的异常是“太多值无法解压”

我正在使用Bottle框架,Python 2.7和Couch Query。

如何通过ID更新文档?什么是正确的方法呢?

1 个答案:

答案 0 :(得分:2)

couchdb-python db.save(doc)方法returns tuple of _id and _rev中。您使用的是couch-query - 有点不同的项目,它也有db.save(doc)方法,但会返回different result。所以你的代码应该是这样的:

def updateDoc(self, id, json):
    doc = self.db.get(id)
    doc["firstName"] = json["firstName"]
    doc = self.db.save(doc)
    print doc['_id'], doc['_rev']
    print "Saved"