猿问

批量读取 Couchbase 文档

我想从 Couchbase 存储桶中异步读取大量文档。这是我的代码:

JsonDocument student = bucketStudent.get(studentID);

问题是对于包含很多 studentID 的大型数据文件,获取这些 studentID 的所有文档需要很长时间,因为该get()方法是针对每个 studentID 调用的。是否可以将学生 ID 列表作为输入并返回学生列表的输出,而不是为每个学生 ID 获取单个文档?


人到中年有点甜
浏览 177回答 3
3回答

米脂

AFAIK couchbase SDK 没有用于批量get操作的本机功能。node.js SDK 有一个getMulti方法,但它基本上是对数组的迭代,然后get()为每个元素触发。我在我的应用程序中发现该key-value方法仍然比SELECT *主索引更快,但 N1QL 查询非常接近(在 couchbase 5.x 上)。只是一个快速提示:如果您有很多 id 需要获取并且您决定使用 N1QL 查询,请尝试将该列表拆分为更小的块。它加快了查询速度,您实际上可以更好地管理错误并避免出现一些令人讨厌的超时。

ITMISS

如果您正在运行查询节点,则可以为此使用 N1QL。您的查询将如下所示:SELECT * FROM myBucket USE KEYS ["key1", "key2", "key3"]实际上,您可能会将字符串数组作为参数传入,如下所示:SELECT * FROM myBucket USE KEYS ?您的存储桶需要一个主索引,否则这样的查询将不起作用。
随时随地看视频慕课网APP

相关分类

Java
我要回答