我的 couchDB 和 couchrest 模型有一些问题。
我的 couchDB 中有一个正在运行的系统,其中包含现有视图(它们工作正常)。现在我想在带有沙发休息模型的 ruby on rails 项目中使用它们。我想用以下方式定义它们:
design do
view :by_name
end
每次我运行代码时,设计文档都会被沙发模型中的默认视图覆盖。
有谁知道如何“使用”它们,而不更改数据库设计文档中的任何内容?
非常感谢!
根据 Couchrest 模型文档: http: //www.couchrest.info/model/view_objects.html
它有一个配置选项:auto_update_design_doc,默认设置为 true。
当请求视图时,将发送设计文档的快速 GET,以确保它与模型中定义的最新版本保持同步。
将此选项设置为 false 以便您可以使用现有视图。但是您需要自己处理视图更新。
我已经研究了 CouchRestModel 一个星期左右,我认为您“使用”现有设计视图的最佳方式是在模型中定义它们。
正如您在http://www.couchrest.info/model/view_objects.html中看到的,您可以编写自己的 map 和 reduce 函数。这不会“使用”现有的设计视图,但会用您自己的功能覆盖,这可能与您之前编写的设计视图完全相同。
例子:
design do
view :by_title,
:map =>
"function(doc) {
if (doc['type'] == 'Post' && doc['title'] != null) {
emit(doc['title'], 1);
}
}",
:reduce =>
"function(keys, values, rereduce) {
return sum(values);
}"
end