MongoDB چیست؟
محبوبترین دیتابیس سندی (Document) NoSQL؛ داده را بهشکل سندهای شبیه JSON (BSON) بدون Schema ثابت ذخیره میکند.
چرا مهم است؟
MongoDB وقتی ساختار داده متغیر است یا نیاز به مقیاسپذیری افقی سریع دارید (مثل کاتالوگ محصول با ویژگیهای متفاوت برای هر دسته)، سریعتر از یک طراحی رابطهای سختگیرانه به نتیجه میرسد.
تعریف
MongoDB داده را در Collectionهایی از Documentهای شبیه JSON (فرمت داخلی BSON) ذخیره میکند؛ هر سند میتواند ساختار متفاوتی از سند دیگر در همان Collection داشته باشد.
مثال با درایور رسمی .NET
var collection = database.GetCollection<Order>("orders");
var recentOrders = await collection
.Find(o => o.Status == "Paid")
.SortByDescending(o => o.CreatedAt)
.Limit(10)
.ToListAsync();
Embedding در برابر Referencing
- Embedding: داده وابسته را داخل همان سند نگه دارید (مثل آیتمهای سفارش داخل سند سفارش) — خواندن سریع، بدون JOIN.
- Referencing: فقط Id مرتبط را نگه دارید، شبیه Foreign Key — وقتی داده مرتبط بزرگ یا در چند جا مشترک است.
اشتباه رایج
❌ Embed کردن دادهای که مدام و مستقل از سند اصلی رشد میکند (مثل کامنتهای نامحدود زیر یک پست) — سند از حداکثر اندازه مجاز (16MB) عبور میکند؛ اینجا باید Referencing استفاده شود.
منبع و مطالعه بیشتر
خلاصه
MongoDB داده را بهشکل سند BSON بدون Schema ثابت ذخیره میکند. داده وابسته کوچک را Embed و داده بزرگ/مشترک را Reference کنید تا از محدودیت اندازه سند در امان بمانید. مرجع کامل: MongoDB Manual و درایور رسمی .NET.
