【发布时间】:2020-04-30 16:51:34
【问题描述】:
我在 CouchDB 中有一个数据库,我想知道是否可以直接从 python 创建视图而不是使用 GUI。 我是 CouchDB 的初学者,我需要一个与 SQL 中的 SELECT DISTINCT 等效的函数和类似的视图
function (doc) {
if(doc.MovieId == "1254")
emit(doc.Rating, 1);
}
是理想的。问题是我必须为更多MovieIds(取自键盘输入)执行此视图。
我问你是否可以直接从 python 创建/删除这样的视图,因为在网上我什么也没找到。 如果不可能,我自己进行 Mango 查询和映射结果是个好主意吗?
---编辑---
json_data = {
"_id": "_design/titaRat",
"_rev": "3-ceb11154b13457c55b1f98f4e9d15b03",
"views": {
"titRat": {
"map": "function (doc) { var id_prefix = \"ratings :\"; if(doc._id.substr(0, id_prefix.length) === id_prefix && doc.MovieId == \"1721\") emit(doc.Rating, 1);}",
"reduce": "_count"
}
},
"language": "javascript",
"options": {
"partitioned": False
}
}
db.save(json_data)
ResourceConflict: ('conflict', 'Document update conflict.')
我收到此错误,但没有具有此名称的文档
【问题讨论】:
-
id为
"_design/titaRat"的文档是否已经存在?如果您没有为现有文档提供正确的_rev,或者在新文档中包含_rev,则会发生文档更新冲突。如果这是一个新文档,请删除_rev -
该文档不存在,但我想通过从GUI复制JSON文档来作弊,我忘记删除“_rev”字段......我感觉很愚蠢哈哈哈它现在可以了,谢谢
标签: python nosql couchdb cloudant couchdb-mango