Couchbase:读取存储桶中的所有文档

时间:2015-11-17 13:30:24

标签: java couchbase couchbase-view

有没有办法从桶中读取所有文件?它是一个活跃的桶,我也想访问新创建的文档 很少有人建议使用查看来查询存储桶。
如何创建一个将使用新的或更新的文档更新的视图?
新创建的视图的地图功能:

function (doc, meta) {
  emit(doc);
}

减少功能为空。当我查询像bucket.query(ViewQuery.from("test1", "all")).totalRows()这样的视图时,它返回0结果。

2 个答案:

答案 0 :(得分:5)

对于返回零结果问题,您是否将视图提升为生产视图?这是一个常见的错误。开发视图只查看一小部分数据,以免不堪重负。先试试这个。

此外,如果您可以提供帮助,永远不会发出整个文档,尤其是当您查看存储桶中的所有文档时。您希望发出文档的ID,然后如果需要获取这些对象的内容,请执行get操作或批量操作。我会为您提供批量操作的直接链接,但您还没有说明您使用的SDK以及那些特定于SDK的SDK。例如,这是Java的一个。

所有这一切,我都有一些问题,为什么你要从桶中做相当于select *。一旦有了这些数据,您打算如何处理?你真的想做什么?当然,如何解决这个问题有很多选择。

答案 1 :(得分:2)

视图只是对存储桶的预定义查询。视图中将显示新的或已更改的文档。

通过单击Web UI中的“显示结果”按钮,可以在创建视图时检查视图的结果,因此如果0文档显示在那里,那么从SDK获得0就不足为奇了。

如果您正在运行Couchbase Server 4+和最新的SDK,您可以使用N1QL并在您的存储桶上创建主索引,然后定期执行Select * from bucket以获取所有文档。

相关问题