我在使用couchDB和沙发模特时遇到了一些问题。
我的couchDB中有一个包含现有视图的运行系统(它们工作正常)。现在我想在沙发休息模型的rails项目中使用它们。 我想用以下内容定义它们:
design do
view :by_name
end
每次运行代码时,都会使用couchrest模型中的默认视图覆盖designdocument。
有人知道如何“使用”它们,而不更改数据库的构建文件中的任何内容吗?
非常感谢!
答案 0 :(得分:0)
根据Couchrest模型文档:http://www.couchrest.info/model/view_objects.html
它有一个配置选项:auto_update_design_doc,默认设置为true。
当请求视图时,将发送设计文档的快速GET,以确保它与模型中定义的最新版本保持同步。
将此选项设置为false,以便您可以使用现有视图。但是你需要自己处理视图更新。
答案 1 :(得分:0)
我一直在研究CouchRestModel一个星期左右,我认为你“使用”现有设计视图的最佳方法是在模型中定义它们。
正如您在http://www.couchrest.info/model/view_objects.html中所看到的,您可以编写自己的地图并减少功能。这不会“使用”现有的设计视图,但会使用您自己的功能覆盖,这可能与您之前编写的设计视图完全相同。
示例:
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