@adobe/aio-lib-db

中文文档
1.1.0发布于 2026/10/28Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 2.2万

文档 DB 存储上方的抽象

中文使用文档
文档目录7 节
  1. 安装
  2. 文档
  3. 为什么使用aio-lib-db?
  4. 类型脚本
  5. 从暂时申报或禁止进口中迁移
  6. 申报维护
  7. 支助

aio-lib-db (英语)

aio-lib-db (英语) 是 Adobe I/O 运行时应用程序的强大文档数据库库。 它提供结构化的,可查询的和灵活的具有MongoDB等查询能力的连续数据.


安装

安装 aio-lib-db 从 npm :

npm install @adobe/aio-lib-db

文档

App 构建器数据库存储的主要文档:


为什么使用aio-lib-db?

  • 类似 MongoDB 的语法: 熟悉查询语言和操作
  • 强大的查询: 复杂的过滤、排序和汇总
  • 光标支持: 大型数据集的内存高效迭代
  • 方法链: 用于构建复杂查询的流利API
  • 类型安全: 综合输入验证和错误处理
  • 流程支持: 处理没有内存问题的大型数据集
  • 土著融合: 专门为 Adobe I/O 运行时所建

类型脚本

从1.1.0开始,本套装包括申报. 运行时间不变 CommunityJS并支援了Node.js 18和后期. 对申报进行测试 TypeScript 5.7, 6.0 和 7.0 使用严格的检查,包括申报检查 (单位:千美元)skipLibCheck: false) (中文(简体) ). 节点类型定义( E)@types/node要求这样做.

支持的解析模式为 node16, (中文(简体) ), nodenext 财务报告和审定财务报表 bundler. 遗产 node 解析度也在 TypeScript 5.7 上测试; 较新的编译器可能会贬值或 删除模式 .

普通JS 类型脚本 :

import libDb = require('@adobe/aio-lib-db')

ES 模块,或普通JS 类型脚本 esModuleInterop: true数字 :

import libDb from '@adobe/aio-lib-db'

名称 init 进口也起作用。 仅 init 是运行时导出; 类型如 DbClient, (中文(简体) ), DbCollection, (中文(简体) ), FindCursor 财务报告和审定财务报表 DbError 仅为类型导出,而非 建筑师.

import libDb from '@adobe/aio-lib-db'

interface User {
  name: string
  age: number
}

async function adultNames(token: string) {
  const db = await libDb.init({ token })
  const client = await db.connect()
  try {
    const users = client.collection<User>('users')
    return await users.find({ age: { $gte: 18 } })
      .map(user => user.name)
      .toArray()
  } finally {
    await client.close()
  }
}

收藏类型参数描述应用程序文档;它们不验证 存储数据。 包含 _id 在你的计划 当使用它。 提供产出类型 当投影或聚合改变文档形状时。 配置预测 和组合前 map(): 预测或 分组文件以及提供产出类型不能取代这一转变. 光标 next() 返回时 null 耗尽时; map() 也支持同步转换. 在迭代开始前配置光标, 或是运行时间抛出 . stream() 返回带有可选同步变换的可读流.

这些声明并不能保证MongoDB与司机完全兼容。 选项是 操作特性: 库转发它们, 但服务拒绝未知 选项名称。 检查 Schema 字段; 点路径、 查询操作符和 汇总表达式仍然开放。 管道相位限于 所支持的艺名,每个对象一个阶段,包括嵌入式搜索 输油管。 使用服务写作/管理员响应对象 Record<string, unknown>,未说明 有效载荷,例如: createIndex() 响应使用 unknown: 缩小这些值 而不是假设 MongoDB 结果字段。 这个图书馆的通行证服务 扩展JSON解码后的有效载荷通过. 见 兼容性指南 对于服务支持; 只有此库执行的光标方法被曝光. 错误可能是 DbError- 形状(包括 requestId, (中文(简体) ), httpStatusCode 还有一个 选项 cause)或其他出错; 被夹入窄处 unknown 使用前的值.

writeConcern, (中文(简体) ), allowPartialResults 和指数 background 已接受 兼容选项, 但不能改变后端行为 。 文档DB 修正 耐久性,ABDB使用非硬化的复制集,索引构建不使用 常规背景设置。 计数 skip编号 :limit 因为它们是 无效.

对于 findOneAndUpdate, (中文(简体) ), findOneAndReplace 财务报告和审定财务报表 findOneAndDelete, (中文(简体) ), includeResultMetadata: true 返回一个其 value 被选中 文档或 null。没有这个选项,文档或 null 已返回 直接说. distinct 返回正常的数值数组,当一个 解释选项;用于驱动支持的操作,甚至 explain: false 请求 queryPlanner 而不是致残的解释. 注释必须是字符串 。 更新、删除和查找并修改业务支持 queryPlanner没有 executionStats. 解释结果仍然存在 Record<string, unknown> 因为DocumentDB计划可以与MongoDB计划不同.

使用 collection.aggregate(pipeline).explain() 用于汇总解释. 不要通过 { explain: true } 改为 aggregate() 并按下返回的光标 : 迭代需要光标响应,而不是解释文件。 回应 解码由这个库的 EJSON 处理控制,而不是直接由 MongoDB 驱动程序 BSON选项.

从暂时申报或禁止进口中迁移

更新到已键入的发布后, 删除本地的临时应用程序 声明 @adobe/aio-lib-db 这样他们就不会掩盖包裹合同. 删除目标导入 @ts-expect-error 指令,包括设置脚本 由 SDK 生成的安装动作和运行时动作导入。 A 类 以前必要的指令 现在报告 TS2578:未使用"@ts-expect-error" (中文(简体) ) 指令。不要将其替换为 @ts-ignore 或禁止严格检查. 运行您的应用程序的严格编译器检查和 aio app build 删除后. 申报改进编译器检查;不提供数据库或证明 实时数据库行为.

申报维护

声明的作者有: index.d.ts; 以公共 API 更新它们 变化. npm test 运行现有的模拟运行时间测试和包装 消费者编译器测试,包括负用例. 没有与数据库联系. 编译器测试练习 npm 的文物, 而不是只使用源声明路径 . 从改进后的JSDoc中产生申报是未来可能由维护者主导的 选项;当前 JSDoc 没有指定完整的类型合同.


支助

关于问题、特征要求或问题,请参考项目的问题跟踪器或文件.

版本与发布记录

@adobe/aio-lib-db 共发布 15 个版本,首次发布于 2025/10/17;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.1.0latest2026/10/288 天前
1.0.42026/09/231 个月前
1.0.32026/04/146 个月前
1.0.22026/03/317 个月前
1.0.12026/03/177 个月前
1.0.02026/03/167 个月前

其他发布通道:alpha → 0.1.0-alpha.1,beta → 0.1.0-beta.1。

关于 @adobe/aio-lib-db 的常见问题

@adobe/aio-lib-db 是什么?

文档 DB 存储上方的抽象

如何安装 @adobe/aio-lib-db?

在项目目录运行 npm install @adobe/aio-lib-db,或使用 pnpm add / yarn add / bun add。

@adobe/aio-lib-db 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adobe/aio-lib-db 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@adobe/aio-lib-db 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@adobe/aio-lib-db 可以商用吗?

@adobe/aio-lib-db 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@adobe/aio-lib-db 的下载量有多少?

根据 npm 官方下载统计,@adobe/aio-lib-db 在 2026/10/05 – 2026/11/03 这 30 天内被下载 22,461 次,日均约 749 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adobe/aio-lib-db 还在维护吗?

最新版本 1.1.0 发布于 2026/10/28(8 天前);至今共发布 15 个版本,其中过去 12 个月发布了 14 个;首次发布于 2025/10/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。