在CouchDB中创建视图时,您如何确定用于新创建的视图的设计文档?也就是说,通过什么原则来确定是否将2个或更多视图放入同一个设计文档中?
答案 0 :(得分:5)
在内部,会发生以下情况。
当CouchDB需要使用新数据更新视图时,它会同时更新设计文档中的所有视图,作为优化。
如果您更改设计文档views
空间内的任何(甚至更改Javascript中的空格或注释),CouchDB将丢弃旧索引并重建从头开始查看。
数据库中的每次更新都必须通过数据库中所有设计文档中的所有 validate_doc_update()
函数。
出于这些原因,最好将一个设计文档视为一个应用程序。
我个人使用的一个例外是_design/couchdb
文档,其中包含常见视图,例如向我显示所有文档冲突。
答案 1 :(得分:2)
我对沙发没有多少经验,但总的来说,将应用程序映射到设计文档是个好主意。因此,如果您有一个应用程序foo
访问的数据库bar
,那么bar
内的foo
设计文档将包含bar
的所有视图1}}将需要根据他们所服务的内容命名。
The guide包含一些如何将设计文档放在正确位置的信息。