在CouchDB中批量检索?

时间:2014-10-17 18:21:08

标签: python couchdb

我最近开始考虑使用CouchDB来存储我在Python中操作的大量dicts。在我的情况下,大约意味着大约20k元素。

我发现update()方法在一次HTTP调用中推送我的整个列表非常快。这需要大约3秒钟,这对我的情况来说是完美的。

我还需要(在不同的脚本中)检索此数据库的全部内容并将其存储在dicts列表中。这与上面的操作相反。 不幸的是,我发现这样做的唯一方法是通过

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

这需要10分钟,因为调用循环的每个元素。

  • 是否有等效的update()来批量检索数据库的内容?
  • 或者我应该以不同的,更有效的方式接近检索部分吗?

1 个答案:

答案 0 :(得分:0)

获取每个文档的最简单方法是向_all_docs发出请求并传递include_docs=true

_all_docs将获取数据库中所有文档的基本详细信息(_id,revision)。 include_docs会将完整文档包含在响应中。

/mydatabase/_all_docs?include_docs=true

如果您需要比返回整个文档更精细的内容(例如,为每个文档返回单个标量值),那么您需要查看views