Спасибо за подсказку по обновлению обработчиков. Хорошо разработанный обработчик обновлений может выглядеть и чувствовать себя точно так же, как обычный механизм создания и обновления документов, при этом добавляя дополнительные поля, такие как дата создания. Кроме того, помещая их в функции обновления, они не запускаются снова после репликации.
из вещей, которая теряется при переходе на CouchDB, это возможность иметь значения по умолчанию для поля. Например, в базе данных SQL вы можете иметь поле с именемdate
по умолчаниюnow()
, Возможно ли сделать что-то подобное в CouchDB?
Из того, что я могу сказать, единственный фрагмент кода, который запускается при каждой операции создания и обновления, этоvalidate_doc_update
метод оформления документа. Однако, когда мы проверили его, создав фиктивную проверку, мы не можем заставить его работать. Вот простая функция проверки, которая пытается установить полеnewDoc.foo
, но это никогда не будет спасено.
function(newDoc, oldDoc, userCtr) {
newDoc.foo = "bar!";
}
Мы проверили и убедились, чтоvalidate_doc_update
метод вызывается, поэтому кажется, что если есть способ автоматического добавления полей в документ CouchDB, использование функции проверки не является подходящим способом. Любые другие предложения?