0

我的 couchDB 和 couchrest 模型有一些问题。

我的 couchDB 中有一个正在运行的系统,其中包含现有视图(它们工作正常)。现在我想在带有沙发休息模型的 ruby​​ on rails 项目中使用它们。我想用以下方式定义它们:

design do
    view :by_name
end

每次我运行代码时,设计文档都会被沙发模型中的默认视图覆盖。

有谁知道如何“使用”它们,而不更改数据库设计文档中的任何内容?

非常感谢!

4

2 回答 2

0

根据 Couchrest 模型文档: http: //www.couchrest.info/model/view_objects.html

它有一个配置选项:auto_update_design_doc,默认设置为 true。

当请求视图时,将发送设计文档的快速 GET,以确保它与模型中定义的最新版本保持同步。

将此选项设置为 false 以便您可以使用现有视图。但是您需要自己处理视图更新。

于 2013-08-02T02:42:47.263 回答
0

我已经研究了 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
于 2017-05-04T09:19:23.863 回答