1

私は 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. これを put リクエストとしてデータベースに送信するのに問題があります。どうやらこれは無効な JSON です。私は JSON の専門家ではないので、これは非常にイライラします。何かご意見は?

  2. put リクエストに問題があったため、Futon を使用してデザイン ドキュメントを追加することにしました。私のデータベースはここにあるビューで問題ないようですが、データベースにドキュメントを追加しようとすると、validate_doc_update テキストが関数として評価されないというエラーが表示されます。検証機能の何が問題なのかについて何かアドバイスはありますか?

検証機能に問題があるため、デザインドキュメントにダムバージョンを入れてみました:

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

このバージョンでドキュメントを作成できますが、あまり役に立ちません。

どんな助けでも大歓迎です。

ありがとう、

ポール・ニコルズ

4

1 に答える 1

0

括弧を閉じるのを忘れただけです(oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field]))

于 2013-01-12T09:20:44.887 に答える