Couchbase View 没有立即更新?

标签 couchbase couchbase-view

我只是关注这个post测试 Couchbase View。当使用 Couchbase GUI 编辑 View 并保存时, View 没有立即更新。

例如,使用 php 脚本将一些数组存储到 Couchbase。并在“dev_sessions”文档中定义一个命名的“last” View :

function (doc) {
if(doc.namespace == 'sessions') {
emit(doc.lastSeen, 1);
}
}

然后使用curl获取json结果。 第一次:

$ curl
http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[ ] }

第二:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352872218,"value":1},
{"key":1352879418,"value":3}
]
}

另一个测试,在php脚本中添加一个新数组:

'eb255262434407766f212d1b6f23' => array(
'namespace' => 'sessions',
"type" => "user",
"userID" => "1107",
'lastSeen' => time(),
'firstSeen' => time(),
"remoteAddress" => "2.3.4.5",
"location" => "Vienna/Austria",
"name" => "Golden K"

再次运行curl,第一次:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352872218,"value":1},
{"key":1352879418,"value":3}
]
}

第二次:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true'
{"rows":[
{"key":1352875163,"value":1},
{"key":1352882363,"value":4}
]
}

如果更改了数据或查看脚本,请单击 Couchbase GUI 中的Views - 'Show Results' 按钮,第一次和第二次的情况有所不同。 为什么 View 不立即更新?

最佳答案

这是预期的行为。默认情况下,Couchbase 在调用 View 后“更新”索引。这样可以有更快的响应时间。

执行 View 时,您可以使用 stale 参数控制 View 的状态(实际上是其索引)。

根据您的情况,只需执行以下操作:

curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true&stale=false'

它会在将数据返回到您的应用程序之前更新索引。

您可以在文档中找到有关此参数以及 View 如何工作的所有信息:

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-stale.html

关于Couchbase View 没有立即更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375546/

相关文章:

apache-kafka - CDC(更改数据捕获)与 Couchbase

java - 客户端应用程序中本地存储管理和数据持久性的最佳实践是什么?

android - 在复制期间在 couch base lite 的 android 模拟器中获取 http 404 错误

javascript - 循环遍历嵌套函数中的所有文档

couchbase - 将 name 属性添加到从 couchbase 中的 View 发出的内容中

android - Couchbase 精简版 : reading document vs querying data

跨数据中心的 couchbase 复制

Couchbase 索引 View 过于频繁

database - CouchBase View 获取多个范围

java - 基于时间的 Couchbase 查询