无法将视图添加到我在 couchDB 中的现有数据库
Unable to add a view to my existing database in couchDB
我有一份现有的设计文档。我想使用 curl POST 命令导入这个设计视图。这样我就可以在 fauxton 中查看它了。
{
"total_rows": 1,
"offset": 1,
"rows": [
{
"id": "_design/editor",
"key": "_design/editor",
"value": {
"rev": "1-c74604129e122055f0b58760a7e08ed8"
},
"doc": {
"_id": "_design/editor",
"_rev": "1-c74604129e122055f0b58760a7e08ed8",
"language": "javascript",
"views": {
"all_vendors": {
"map": "function(doc) {\n if (doc.type==\"vendor\"){\n emit(doc.name, doc.name);\n }\n}"
}
}
}
}
]
}
我正在尝试使用以下命令将此文档添加到现有数据库中
curl -X POST http://127.0.0.1:5984/${db_name}/_design/${design_name}/_view/${view_name}
您没有显示您尝试上传的实际文档,并且您使用的是 POST,所以我不得不猜测一下您在做什么。你是说你要上传的文档在数据库中不存在,所以让我们改用 PUT,并删除可能驻留在文档本身中的任何修订:
% cat ddoc.json
{"_id":"_design/editor","views":{"all_vendors":{"map":"function (doc) {\n if (doc.type==\"vendor\"){\n emit(doc.name, doc.name);\n }\n}"}},"language":"javascript"}
这就是您的观点:请注意,没有 _rev 字段。这是至关重要的。让我们将其卷曲到数据库(我使用的是 Cloudant,但同样的事情也适用于 couchdb):
% acurl -XPUT 'https://skruger.cloudant.com/source/_design/editor' -d@ddoc.json
{"ok":true,"id":"_design/editor","rev":"3-42790f55c52a203d1e83e0e94c2664a0"}
我现在可以在 fauxton 看到那个景色了:
和命名视图本身:
我有一份现有的设计文档。我想使用 curl POST 命令导入这个设计视图。这样我就可以在 fauxton 中查看它了。
{
"total_rows": 1,
"offset": 1,
"rows": [
{
"id": "_design/editor",
"key": "_design/editor",
"value": {
"rev": "1-c74604129e122055f0b58760a7e08ed8"
},
"doc": {
"_id": "_design/editor",
"_rev": "1-c74604129e122055f0b58760a7e08ed8",
"language": "javascript",
"views": {
"all_vendors": {
"map": "function(doc) {\n if (doc.type==\"vendor\"){\n emit(doc.name, doc.name);\n }\n}"
}
}
}
}
]
}
我正在尝试使用以下命令将此文档添加到现有数据库中
curl -X POST http://127.0.0.1:5984/${db_name}/_design/${design_name}/_view/${view_name}
您没有显示您尝试上传的实际文档,并且您使用的是 POST,所以我不得不猜测一下您在做什么。你是说你要上传的文档在数据库中不存在,所以让我们改用 PUT,并删除可能驻留在文档本身中的任何修订:
% cat ddoc.json
{"_id":"_design/editor","views":{"all_vendors":{"map":"function (doc) {\n if (doc.type==\"vendor\"){\n emit(doc.name, doc.name);\n }\n}"}},"language":"javascript"}
这就是您的观点:请注意,没有 _rev 字段。这是至关重要的。让我们将其卷曲到数据库(我使用的是 Cloudant,但同样的事情也适用于 couchdb):
% acurl -XPUT 'https://skruger.cloudant.com/source/_design/editor' -d@ddoc.json
{"ok":true,"id":"_design/editor","rev":"3-42790f55c52a203d1e83e0e94c2664a0"}
我现在可以在 fauxton 看到那个景色了:
和命名视图本身: