在CouchDB中将视图放入同一设计文档的原则?

时间:2011-02-19 16:31:09

标签: couchdb

在CouchDB中创建视图时,您如何确定用于新创建的视图的设计文档?也就是说,通过什么原则来确定是否将2个或更多视图放入同一个设计文档中?

2 个答案:

答案 0 :(得分:5)

在内部,会发生以下情况。

  1. 当CouchDB需要使用新数据更新视图时,它会同时更新设计文档中的所有视图,作为优化。

  2. 如果您更改设计文档views空间内的任何(甚至更改Javascript中的空格或注释),CouchDB将丢弃旧索引并重建从头开始查看

  3. 数据库中的每次更新都必须通过数据库中所有设计文档中的所有 validate_doc_update()函数。

  4. 出于这些原因,最好将一个设计文档视为一个应用程序。

    我个人使用的一个例外是_design/couchdb文档,其中包含常见视图,例如向我显示所有文档冲突。

答案 1 :(得分:2)

我对沙发没有多少经验,但总的来说,将应用程序映射到设计文档是个好主意。因此,如果您有一个应用程序foo访问的数据库bar,那么bar内的foo设计文档将包含bar的所有视图1}}将需要根据他们所服务的内容命名。

The guide包含一些如何将设计文档放在正确位置的信息。