CouchDB中的批量检索?

0 投票
1 回答
1016 浏览
提问于 2025-04-28 04:20

我最近开始考虑用CouchDB来存储我在Python中处理的一大堆字典。对我来说,这个“大”是指大约有2万个元素。

我发现update()这个方法在一次HTTP请求中能很快把我的整个列表推送进去。大约只需要3秒钟,这对我来说非常合适。

我还需要在另一个脚本中获取这个数据库的全部内容,并把它存储到一个字典列表里。这是与上面操作相反的过程。可惜的是,我找到的唯一方法是通过

# db is the database opened following a couchdb.Server() call
mylist = list()
for id in db:
    mylist.append(db[id])

这个方法需要10分钟,因为循环中的每个元素都要发一次请求。

  • 有没有类似于update()的方法,可以一次性获取数据库的内容?
  • 或者我应该用其他更有效的方法来处理获取的部分?
暂无标签

1 个回答

0

获取所有文档最简单的方法就是向 _all_docs 发送请求,并且加上 include_docs=true

_all_docs 会返回数据库中所有文档的基本信息,比如文档的ID和版本号。而 include_docs 则会让完整的文档内容也包含在返回的结果中。

/mydatabase/_all_docs?include_docs=true

如果你需要的结果比返回整个文档更细致一些,比如只想要每个文档的一个简单值,那么你就需要了解一下 视图

撰写回答