为了账号安全,请及时绑定邮箱和手机立即绑定

批量读取 Couchbase 文档

批量读取 Couchbase 文档

人到中年有点甜 2021-07-12 09:08:37
我想从 Couchbase 存储桶中异步读取大量文档。这是我的代码:JsonDocument student = bucketStudent.get(studentID);问题是对于包含很多 studentID 的大型数据文件,获取这些 studentID 的所有文档需要很长时间,因为该get()方法是针对每个 studentID 调用的。是否可以将学生 ID 列表作为输入并返回学生列表的输出,而不是为每个学生 ID 获取单个文档?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

AFAIK couchbase SDK 没有用于批量get操作的本机功能。

node.js SDK 有一个getMulti方法,但它基本上是对数组的迭代,然后get()为每个元素触发。

我在我的应用程序中发现该key-value方法仍然比SELECT *主索引更快,但 N1QL 查询非常接近(在 couchbase 5.x 上)。

只是一个快速提示:如果您有很多 id 需要获取并且您决定使用 N1QL 查询,请尝试将该列表拆分为更小的块。它加快了查询速度,您实际上可以更好地管理错误并避免出现一些令人讨厌的超时。


查看完整回答
反对 回复 2021-07-14
?
ITMISS

TA贡献1871条经验 获得超8个赞

如果您正在运行查询节点,则可以为此使用 N1QL。您的查询将如下所示:

SELECT * FROM myBucket USE KEYS ["key1", "key2", "key3"]

实际上,您可能会将字符串数组作为参数传入,如下所示:

SELECT * FROM myBucket USE KEYS ?

您的存储桶需要一个主索引,否则这样的查询将不起作用。


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信