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

如何通过Notion API获取数据库中的页面总数

答复

你没有遗漏官方文档的相关接口说明,截至当前Notion开放API没有提供可直接返回数据库页面总数的专属接口。
你当前实现的循环翻页累加结果条数的逻辑,就是目前官方支持的获取数据库页面总数的标准方案,不存在更简便的官方原生实现。

现有遍历逻辑优化

可以对现有代码做两处调整,大幅提升计数请求的效率:

  • 接口请求时将page_size参数设为单页支持的最大值100,把总请求轮次降到最低
  • 配置空的filter_properties参数,让接口仅返回页面基础标识、不返回任何页面属性内容,能将单页响应体积压缩九成以上,加快单请求响应速度

优化后的核心代码如下:

let count = 0
let hasMore = true
let nextCursor: string | undefined = undefined

while (hasMore) {
  const result: QueryDatabaseResponse = await notion.databases.query({
    database_id: databaseId,
    start_cursor: nextCursor,
    page_size: 100,
    filter_properties: []
  })
  count += result.results.length
  hasMore = result.has_more
  nextCursor = result.next_cursor ?? undefined
}

高频查询场景的替代方案

如果业务场景需要频繁查询该数据库的页面总数,且数据库内页面量级较大,不建议每次都实时调用接口遍历拉取:

  • 可在自有业务侧维护独立的计数缓存
  • 每次通过API对该数据库执行新增页面、删除页面、归档/恢复页面操作时,同步更新缓存的计数值
  • 每隔固定周期执行一次全量遍历逻辑校准缓存,避免计数出现偏差

内容的提问来源于stack exchange,提问作者Dominik Bláha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:01:12