Python, CouchDb: 如何通过ID更新已有文档

1 投票
1 回答
7126 浏览
提问于 2025-04-18 06:13

我想通过ID更新一个已经存在的文档。我的想法是先根据ID找到这个文档,然后把它的“firstName”用从“json”中得到的新值替换掉,最后把更新后的文档保存到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 个回答

3

couchdb-python 这个库里,db.save(doc) 这个方法会返回一个包含 _id 和 _rev 的元组。你现在使用的是 couch-query,这是一个稍微不同的项目,它也有一个 db.save(doc) 方法,但返回的结果 是不同的。所以你的代码应该像这样:

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"

撰写回答