تحويل JSON إلى Mongoose schema
الصق مستندا من MongoDB أو استجابة API لتحصل على schema ونموذج Mongoose لمشروع Node.js.
جارٍ تحميل الأداة…
المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.
طريقة الاستخدام
- أدخل نص JSON واسم النوع الرئيسي.
- تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
- انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.
طريقة الحساب
String وNumber وBoolean و[T] وMixed، ومخطط فرعي لكل كائن متداخل يعرف قبل استخدامه. الحقل الموجود دائما دون null يأخذ required: true، والمصفوفات لا تأخذه لأن Mongoose يضع لها [] افتراضيا. كل حقل يكتب بالشكل { type: X } لتجنب الالتباس مع مفتاح اسمه type.
مثال
المدخلات: اسم النوع الرئيسي = User. النتيجة: الكود الناتج: import mongoose from "mongoose"; const orderSchema = new mongoose.Schema({ order_id: { type: String, required: true }, total: { type: Number, required: true }, coupon: { type: String }, }); const addressSchema = new mongoose.Schema({ city: { type: String, required: true }, postal_code: { type: String, required: true }, }); const userSchema = new mongoose.Schema({ id: { type: Number, required: true }, name: { type: String, required: true }, email: { type: String, required: true }, is_active: { type: Boolean, required: true }, balance: { type: Number, required: true }, tags: { type: [String] }, address: { type: addressSchema, required: true }, orders: { type: [orderSchema] }, }); export const User = mongoose.model("User", userSchema);، عدد الأنواع: 3، عدد الحقول: 13.
{
"id": 1024,
"name": "Sara Ahmed",
"email": "sara@example.com",
"is_active": true,
"balance": 1520.75,
"tags": ["vip", "riyadh"],
"address": { "city": "Riyadh", "postal_code": "12211" },
"orders": [
{ "order_id": "A-1", "total": 99.5, "coupon": "EID10" },
{ "order_id": "A-2", "total": 120, "coupon": null }
]
}import mongoose from "mongoose";
const orderSchema = new mongoose.Schema({
order_id: { type: String, required: true },
total: { type: Number, required: true },
coupon: { type: String },
});
const addressSchema = new mongoose.Schema({
city: { type: String, required: true },
postal_code: { type: String, required: true },
});
const userSchema = new mongoose.Schema({
id: { type: Number, required: true },
name: { type: String, required: true },
email: { type: String, required: true },
is_active: { type: Boolean, required: true },
balance: { type: Number, required: true },
tags: { type: [String] },
address: { type: addressSchema, required: true },
orders: { type: [orderSchema] },
});
export const User = mongoose.model("User", userSchema);الحدود والملاحظات
- Number يشمل الأعداد الصحيحة والكسرية، فأضف min أو validate عند الحاجة.
- Mongoose يضيف _id تلقائيا لكل مستند ولكل مخطط فرعي.
أسئلة شائعة عن هذه الأداة
لماذا لا تأخذ المصفوفات required؟
Mongoose ينشئ المصفوفة فارغة [] افتراضيا، لذلك لا يفيد required في معرفة غيابها.
هل الكود يعمل مع require بدل import؟
نعم، ضع const mongoose = require("mongoose") مكان السطر الأول، وmodule.exports مكان export.
هل ترسل بياناتي إلى خادم؟
لا، التحويل يعمل داخل متصفحك ولا يغادر نص JSON جهازك.
