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 没有指定完整的类型合同.
支助
关于问题、特征要求或问题,请参考项目的问题跟踪器或文件.