Невозможно добавить представление в мою существующую базу данных в couchDB - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть существующий проектный документ. Я хочу импортировать это представление дизайна, используя команду 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}

1 Ответ

3 голосов
/ 11 февраля 2020

Вы не показываете действительный do c, который вы пытаетесь загрузить, и вы используете POST, поэтому мне придется немного угадать, что вы делаете. Вы говорите, что do c, который вы хотите загрузить, не существует в базе данных, поэтому давайте вместо этого используем 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 просто отлично:

Fauxton showing uploaded ddoc view

и сам именованный вид:

enter image description here

...