تحويل JSON إلى Mongoose schema

الصق مستندا من MongoDB أو استجابة API لتحصل على schema ونموذج Mongoose لمشروع Node.js.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل نص JSON واسم النوع الرئيسي.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

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 جهازك.