ZeroTool Workbench
JSON 转 Mongoose Schema
即时从 JSON 生成 Mongoose Schema,支持 JavaScript 和 TypeScript 输出、timestamps 选项、嵌套对象和数组。免费,完全在浏览器中运行。
使用方法
- 将 JSON 粘贴或输入到左侧面板,工具会实时验证。
- 设置模型名称(默认:
User),用于命名 schema 变量和 Mongoose model。 - 选择 JavaScript 或 TypeScript 输出模式。
- 切换 timestamps 开启或关闭。
- 点击生成 Schema,或等待实时转换结果。
- 点击复制将输出复制到剪贴板。
类型映射
null→mongoose.Schema.Types.Mixed- 字符串 →
String - 数字 →
Number - 布尔值 →
Boolean - 基本类型数组 →
[String]/[Number]/[Boolean] - 对象数组 →
[subSchema](生成独立子 schema) - 嵌套对象 → 独立 schema 变量,内联引用
示例
给定如下 JSON,模型名称为 User:
{"username": "alice", "age": 28, "tags": ["admin"], "address": {"city": "London"}}
JavaScript 输出(timestamps 开启):
const mongoose = require('mongoose');
const { Schema } = mongoose;
const addressSchema = new Schema({
city: { type: String },
});
const userSchema = new Schema({
username: { type: String },
age: { type: Number },
tags: [String],
address: addressSchema,
}, { timestamps: true });
module.exports = mongoose.model('User', userSchema); FAQ
这个工具生成什么?
从 JSON 生成 Mongoose schema 定义。每个嵌套对象都会生成独立的 schema 变量,底部包含 model 导出语句。
支持哪些语言模式?
JavaScript(CommonJS require/module.exports)和 TypeScript(ES module import/export,含 Document 接口和泛型 schema)。
JSON 类型如何映射到 Mongoose 类型?
string→String、number→Number、boolean→Boolean、null→mongoose.Schema.Types.Mixed、基本类型数组→[Type]、对象数组→独立子 schema、嵌套对象→独立子 schema。
timestamps 选项有什么作用?
开启时,schema 会以 { timestamps: true } 创建,Mongoose 将自动管理 createdAt 和 updatedAt 字段。
所有字段都会标记为必填吗?
不会。仅凭 JSON 无法判断字段是否必填,默认不添加 required: true,请根据需要手动添加。
我的数据会发送到服务器吗?
不会。整个转换在浏览器中运行,数据不会离开本机。