# @adobe/aio-lib-db 中文文档

规范地址：https://npmcn.com/package/%40adobe/aio-lib-db/

版本：1\.1\.0
npm 元数据更新时间：2026-10-28T15:58:01.293Z
中文译文更新时间：2026-11-05T20:59:57.350Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adobe/aio-lib-db
原文对照：https://npmcn.com/package/%40adobe/aio-lib-db/?lang=original
项目主页：https://github.com/adobe/aio-lib-db#readme
源码仓库：https://github.com/adobe/aio-lib-db

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：109 kB，24 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：8 个
- 首次发布：2025-10-17T10:16:25.148Z
- 最新版本发布：2026-10-28T15:58:00.908Z
- 近 30 天下载量：22461（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 14 个）

## 中文简介

文档 DB 存储上方的抽象

## 安装

```sh
npm install @adobe/aio-lib-db
```

也可以使用：`pnpm add @adobe/aio-lib-db`、`yarn add @adobe/aio-lib-db`、`bun add @adobe/aio-lib-db`

## README

# aio-lib-db (英语)

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

* * *

## 安装

安装 `aio-lib-db` 从 npm :

```bash
npm install @adobe/aio-lib-db
```

## 文档

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

-   [开始数据库存储](https://developer.adobe.com/app-builder/docs/guides/app_builder_guides/storage/database)

* * *

## 为什么使用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 类型脚本 :

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

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

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

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

```typescript
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解码后的有效载荷通过. 见 [兼容性指南](https://developer.adobe.com/app-builder/docs/guides/app_builder_guides/storage/db-mongo-compatibility) 对于服务支持; 只有此库执行的光标方法被曝光. 错误可能是 `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 是什么？

文档 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 和提交记录判断。

