CouchDB _design文档冲突检测

Jim*_*imZ 5 couchdb

我知道CouchDB会识别复制后发生冲突的文档.对于_design文档,CouchDB是否会对常规文档进行不同的冲突检测?例如,我在DB1中修改_design文档.然后我在DB2中修改相同的_design文档.然后我将DB1复制到DB2.我希望CouchDB识别冲突,但是在复制之后,Couch不会发生冲突.

Jas*_*ith 4

设计文档与普通文档完全相同,因此名称为“设计文档”而不是“沙发程序”等。

如果您对不同数据库中的相同文档进行相同的修改,则不会发生冲突。如果您将同一个应用程序推送到两个不同的数据库(并且它们一开始couchapp push就有相同的数据库),那么运行可能会造成这种情况。_rev

否则,无论是否有设计文档,您都会遇到冲突。当然,couch 会将一个修订版“提升”为规范版本,但如果您_conflicts在视图中检查,您将看到它们。(要在视图中查看设计文档,您还必须启用该include_design选项。)

{ "_id": "_design/example"
, "views":
  { "conflicts":
    { "options": {"include_design": true}
    , "map": "function(doc) { if(doc._conflicts) emit(doc._id, doc._conflicts); }"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

使用键范围扫描查找冲突的 ddocs:

?startkey="_design/"&endkey="_design0"
Run Code Online (Sandbox Code Playgroud)