簡體   English   中英

CouchDB設計文檔和validate_doc_update函數遇到問題

[英]Having trouble with CouchDB design document and validate_doc_update function

我是CouchDB的新手,並且在使設計文檔在數據庫中工作時遇到很多麻煩。

這是我的設計文件:

{
"language": "javascript",

"validate_doc_update": "function(newDoc, oldDoc, userCtx) {
    function require(field, message) {
        message = message || "Document must have a " + field;
        if (!newDoc[field]) throw({forbidden : message});
    };
    function unchanged(field) {
        if (oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field])) {
        }
    };

    if (newDoc.type == "fortune") {
        require("body");
        require("sequence_id");
        require("created_at");
        unchanged("sequence_id");
        unchanged("created_at");
    }
};",

"views": { 
    "fortune_count": {
        "map": "function(doc) { if(doc.sequence_id && doc.body) { emit(doc.sequence_id, doc.body); }",
        "reduce": "_count"
        }
},

"shows": {
}
}

讓我分解一下我遇到的問題:

  1. 我在將其作為放置請求發送到我的數據庫時遇到了麻煩。 顯然,這是無效的JSON。 我不是JSON方面的專家,這非常令人沮喪。 有什么想法嗎?

  2. 由於放置請求存在問題,因此我決定使用Futon添加設計文檔。 我在這里的視圖看來數據庫不錯,但是當我嘗試向數據庫中添加文檔時,出現一條錯誤消息,提示我的validate_doc_update文本無法求值。 關於我的validate函數有什么問題的任何建議嗎?

由於我的validate函數遇到困難,因此我嘗試在設計文檔中放入一個啞版本:

"validate_doc_update": "function(newDoc, oldDoc, userCtx) { if (newDoc.type == "fortune") {} };",

我可以使用此版本來創建文檔,但是並沒有太大用處。

任何幫助,將不勝感激。

謝謝,

保羅·尼科爾斯

您只是忘了在(oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field]))關閉括號(oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM