过滤的更改调用上的CouchDB和版本
在我的couchDB数据库中,我有一个过滤器,它只会发出包含过滤的更改调用上的CouchDB和版本,couchdb,Couchdb,在我的couchDB数据库中,我有一个过滤器,它只会发出包含doc.my_key==“value”的文档,如下所示: { "id": "_design/test". "filters": { "value_only": "function(doc){return (doc['my_key'] == 'value');}" } } 当我写两个这样的文档时: { "id": 1, "my_key": "cheeky" } { "id":2, "my_key":
doc.my_key==“value”
的文档,如下所示:
{
"id": "_design/test".
"filters": {
"value_only": "function(doc){return (doc['my_key'] == 'value');}"
}
}
当我写两个这样的文档时:
{
"id": 1,
"my_key": "cheeky"
}
{
"id":2,
"my_key": "value"
}
{
"id":2,
"my_key": "no longer value"
}
然后,位于/this\u database/\u changes?filter=test/value\u only
的json读取:
{
"results":[
{"seq":2,"id":"2","changes":[{"rev":"1-463e18b34dfa529dd9b39981ad3293f4"}]},
],
"last_seq":4
}
这很酷。CouchDB很酷。但是,我现在更新文档#2如下:
{
"id": 1,
"my_key": "cheeky"
}
{
"id":2,
"my_key": "value"
}
{
"id":2,
"my_key": "no longer value"
}
过滤的更改提要现在为空。我知道这是因为当一个文档被更新时,该文档以前的序号会从变更提要中删除,但是否有任何参数可以传递/配置编辑,以便返回该文档ID的最新版本?突然,变更提要中没有此类参数。处理所有更改事件的唯一方法是将提要作为连续流侦听。然而,即使是这种情况也不能为您提供任何保证,因为压实作业的赛道条件,收到的版本号将可用 如果存在任何冲突(例如,文档有两个具有不同叶版本的“标题”),则更改提要只会发出叶版本和获胜的版本。对于后者,您可以传递
?style=all_docs
查询参数来检索文档的所有现有页
例如:
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
' Document with _id foo '
' '
' +-----------------+ +-------+ +-------+ +-------+ '
' | 1-abc | ----> | 2-cde | ----> | 3-fgh | --> | 4-ijk | '
' +-----------------+ +-------+ +-------+ +-------+ '
' | '
+ - - - - - - - - - - - - | - - - - - - - - - - - - - - +
' | '
' | '
' v '
' +-------+ '
' | 3-123 | '
' +-------+ '
' '
+ - - - - - +
默认行为(style=main\u only
)将生成获胜的修订版:4-ijk
,而style=all\u docs
的更改提要将生成此文档的3-123
和4-ijk
修订版
在中不确定,但我认为这是数据库数据结构的优化使用和防止与压缩冲突的保护,压缩处理所有非LEFS修订。突然,没有用于更改提要的此类参数。处理所有更改事件的唯一方法是将提要作为连续流侦听。然而,即使是这种情况也不能为您提供任何保证,因为压实作业的赛道条件,收到的版本号将可用 如果存在任何冲突(例如,文档有两个具有不同叶版本的“标题”),则更改提要只会发出叶版本和获胜的版本。对于后者,您可以传递
?style=all_docs
查询参数来检索文档的所有现有页
例如:
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
' Document with _id foo '
' '
' +-----------------+ +-------+ +-------+ +-------+ '
' | 1-abc | ----> | 2-cde | ----> | 3-fgh | --> | 4-ijk | '
' +-----------------+ +-------+ +-------+ +-------+ '
' | '
+ - - - - - - - - - - - - | - - - - - - - - - - - - - - +
' | '
' | '
' v '
' +-------+ '
' | 3-123 | '
' +-------+ '
' '
+ - - - - - +
默认行为(style=main\u only
)将生成获胜的修订版:4-ijk
,而style=all\u docs
的更改提要将生成此文档的3-123
和4-ijk
修订版
不确定,但我认为这是数据库数据结构的优化使用和与压缩冲突的保护,压缩处理所有非LEFS修订。谢谢,没有这样的功能有点令人失望,但我能理解为什么!谢谢,没有这样的功能有点令人失望,但我能理解为什么!