You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用py-ravendb列出RavenDB v5.4+数据库中的所有集合?

在RavenDB v5.4+中用py-ravendb列出所有集合

你的代码报错是因为database_commands在py-ravendb的新版本中已被移除,RavenDB v5+改用**维护操作(Maintenance Operations)**来处理这类系统级查询。以下是正确的实现方式:

完整代码示例

from ravendb import DocumentStore, GetCollectionsOperation

URLS = ['http://localhost:8080']
DB_NAME = 'my-db'

store = DocumentStore(URLS, DB_NAME)
store.initialize()

# 发送获取集合的维护操作
collections_data = store.maintenance.database.send(GetCollectionsOperation())
# 提取所有集合名称(返回结果是{集合名: 文档数}的字典)
collections = list(collections_data.keys())

print(collections)

关键说明

  • 必须导入GetCollectionsOperation类,这是官方提供的专门用于查询集合的操作对象
  • 通过store.maintenance.database.send()执行操作,该方法是v5+客户端处理数据库级维护任务的标准入口
  • 返回结果是一个字典,键为集合名称,值为对应集合的文档总数;如果只需要集合名,直接取字典的keys()即可

分页查询(对应原代码的0,50参数)

如果需要分页获取集合,可以给GetCollectionsOperation传入start和page_size参数:

# 从第0个开始,最多返回50个集合
collections_data = store.maintenance.database.send(GetCollectionsOperation(start=0, page_size=50))

内容的提问来源于stack exchange,提问作者Julián

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:20:22