在couchdb中更新设计文档是否会导致重建视图?

Aks*_*rma 6 couchdb

假设我有一个包含视图,更新函数等的设计文档.现在假设我通过添加验证处理程序来更新设计文档.即使我根本不对视图函数进行任何更改,这是否会导致重新构建此设计文档中定义的视图.

Ber*_*ner 5

不,只要视图属性本身未更改,视图就不会重新生成.CouchDB计算views设计文档属性的哈希值,并使用此哈希值作为视图的文件名.

我们在生产中大量使用此功能:我们定期更新我们的设计文档,并且只要视图本身不更改,视图就不会重新生成.

顺便说一句:这也是您可以require()在视图中使用CommonJS模块的原因,但是您只能使用其中的路径views.你可以这样做:

{
  ...
  "views": {
    "lib": {
      "underscore": "... (underscore.js here)"
    },
    "my_view": {
      "map": "function (doc) { var _ = require('views/lib/underscore'); emit(doc._id, _.pick(doc, 'name', 'address'); }"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但你不能使用require这样的:var _ = require('underscore');

希望这可以帮助!