Можно ли добавить поля в документ в функции проверки CouchDB? - PullRequest
2 голосов
/ 28 апреля 2011

Одна из вещей, которая теряется при переходе на CouchDB, это возможность иметь значения по умолчанию для поля. Например, в базе данных SQL у вас может быть поле с именем date, по умолчанию now(). Можно ли сделать что-то подобное в CouchDB?

Из того, что я могу сказать, единственным фрагментом кода, который запускается при каждой операции создания и обновления, является validate_doc_update метод конструкторского документа. Однако, когда мы проверили его, создав фиктивную проверку, мы не можем заставить его работать. Вот простая функция проверки, которая пытается установить поле newDoc.foo, но оно никогда не сохраняется.

function(newDoc, oldDoc, userCtr) {
    newDoc.foo = "bar!";
}

Мы проверили и убедились, что вызывается метод validate_doc_update, поэтому кажется, что если есть способ автоматического добавления полей в документ CouchDB, использование функции проверки не подходит. Любые другие предложения?

1 Ответ

3 голосов
/ 28 апреля 2011

Вы можете использовать некоторую логику представления для применения значений по умолчанию при просмотре документа через представление.

Вы можете применить к нему обработчик обновления после его записи (и, возможно, после последующих изменений) но для этого потребуется еще один вызов, чтобы вызывать его каждый раз.

Я бы, вероятно, решил эту проблему, создав документ, который вы вставляете как объект, перед тем, как вставить его, и применив к нему значения по умолчанию, поэтому то, что вы пишете в CouchDB, уже правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...