MongoDB 导出器文档
模块:
src/exporters/MongoDBExporter.ts
用途: 将 JSON Schema 转换为 MongoDB 验证 Schema
📑 目录
概述
MongoDBExporter 将 schema-dsl 生成的 JSON Schema 转换为 MongoDB 的 $jsonSchema 验证格式,可直接用于创建集合时的文档验证。
核心功能
- ✅ 转换为 MongoDB
$jsonSchema格式 - ✅ 自动映射类型为 BSON 类型
- ✅ 保留所有约束条件
- ✅ 生成
createCollection命令 - ✅ 支持严格/宽松验证模式
快速开始
输出:
API 参考
构造函数
参数:
方法
export(jsonSchema)
将 JSON Schema 转换为 MongoDB 验证 Schema。
参数:
jsonSchema(Object): schema-dsl 生成的 JSON Schema 对象
返回值:
Object: 包含$jsonSchema的 MongoDB 验证对象
generateCreateCommand(collectionName, jsonSchema)
生成 createCollection 命令对象。
参数:
collectionName(string): 集合名称jsonSchema(Object): JSON Schema 对象
返回值:
generateCommand(collectionName, jsonSchema)
生成可执行的 MongoDB 命令字符串。
输出:
MongoDBExporter.export(jsonSchema) (静态方法)
快速导出,无需实例化。
配置选项
验证模式
完整示例
用户集合验证
在 MongoDB 中使用
类型映射
约束映射
导出限制
⚠️ 重要提示: 并非所有 schema-dsl 特性都能导出到数据库 Schema。
不支持导出的特性:
- ❌ 条件验证逻辑(
dsl.match(),dsl.if()) - ❌ 自定义验证器(
.custom()) - ❌ 复杂 JSON Schema 关键字(
allOf,anyOf,oneOf) - ❌ 自定义错误消息(
.messages())
详细说明: 请阅读 导出限制说明文档
相关文档
对应示例文件
示例入口: mongodb-exporter.ts
说明: 覆盖 $jsonSchema 导出、generateCreateCommand() 和 generateCommand(),对应文档中的验证集合创建场景。