Python,CouchDb : how to Update already existing document by ID

标签 python python-2.7 couchdb bottle couchdb-python

我正在尝试按 ID 更新现有文档。我的目的是通过 id 找到文档,然后使用“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 更新文档?正确的做法是什么?

最佳答案

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"

关于Python,CouchDb : how to Update already existing document by ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595909/

相关文章:

c++ - Python服务器脚本与C程序通信报错

python - Raspberry PI 上 Python 中的 433MHz 发送器和接收器

python - statsmodels.tsa.api.VAR 如何绘制结果

python - 如何解决类型错误: cannot concatenate 'str' and 'int' objects?

CouchDB 元素数组中字符串的查询选择器

couchdb - 有没有办法在 CouchDB 文档中搜索子字符串

python - 为什么 statistics.mean() 这么慢?

python - Scikit-Learn 在 RFECV() 中手动指定 .max_features - 有多少特征得到排名?

python - 当我使用 chr() 将 int 转换为字符时,为什么会得到\xc2?

node.js - Nodejs 从 CouchDB 流式传输视频并显示在视频标签中