مانگودی‌بی
مانگودی‌بی یک پایگاه داده‌های سند-گرای متن‌باز، کارا، مقیاس‌پذیر، بدون نیاز به طرح‌بندی اولیه نوشته شده در زبان برنامه‌نویسی سی++ است.
هدف مانگودی‌بی پرکردن فاصلهٔ ذخیره‌بندی‌های کلید/مقداری که سریع و مقیاس پذیر هستند و سامانه‌های سنتی مدیریت پایگاه داده رابطه‌ای که درخواست‌های غنی و عملکرد عمیقی دارند— بوده‌است. مانگودی‌بی برای رفع مشکلاتی طراحی شده که با پایگاه داده‌های رابطه‌ای به سادگی رفع نمی‌شوند؛ برای مثال اگر پایگاه داده کارسازهای زیادی را دربرگیرد.
مانگودی‌بی به جای اینک همانند پایگاه‌های داده‌های رابطه‌ای کلاسیک داده‌ها را در جداول ذخیره کند، داده‌های ساختاریافته را در اسنادی با قالبی شبیه به جی‌سون (مانگودی‌بی این قالب را بی‌سون(BSON) می‌نامد) ذخیره‌سازی می‌کند، و بدین ترتیب یکپارچه‌سازی داده‌ها را در برخی اقسام برنامه‌های کاربردی آسان‌تر و سریع‌تر می‌کند.
توسعه مانگودی‌بی در 10gen در سال ۲۰۰۷، هنگامی که شرکت در حال ایجاد یک بستر به عنوان سرویس مشابه با ویندوز آژور یا گوگل اپ انجین بود، آغاز شد. در سال ۲۰۰۹ مانگودی‌بی عنوان یک محصول مستقل و متن باز با مجوز آجی‌پی‌ال ارائه شد.
در ماه مارس ۲۰۱۰، با شروع از نسخه ۱٫۴، مانگودی‌بی قابل استفاده در خط تولید شناخته شد.
مانگودی‌بی به صورت آزاد تحت پروانه عمومی همگانی آفرو در دسترس است. درایور زبان‌های مختلف تحت پروانه آپاچی در دسترس هستند. علاوه بر این، 10gen پروانه‌های تجاری برای مانگودی‌بی ارائه می‌دهد.
در زیر خلاصه‌ای از برخی از ویژگی‌های اصلی آمده‌است:
برای اطلاعات بیشتر دربارهٔ موارد بالا به کتابچه ی توسعه‌دهندگان مانگودی‌بی مراجعه کنید.
با توجه به مقاله «موارد استفاده» در وب سایت مانگودی‌بی، مانگودی‌بی برای موارد زیر مناسب است:
لیست شرکت‌هایی که از مانگودی‌بی استفاده می‌کنند شامل موارد زیر است: برای لیست کامل و ارجاع به هر مورد استفاده خاص به مقاله "Production Deployments" در وب‌سایت مانگودی‌بی مراجعه کنید.
مانگودی‌بی داده‌های دارای ساختار را در اسنادی با قالبی شبیه جی‌سون (JSON) به اسم بی‌سون (BSON) ذخیره می‌کند. در مانگودی‌بی داده‌ها دارای طرح از پیش تعیین شده نیستند.
یک عنصر داده سند (document) نامید می‌شود، و سندها در مجموعه‌ها (collection) ذخیره می‌شوند. هر مجموعه ممکن است دارای هر تعداد از سندها باشد.
در مقایسه با پایگاه‌های دادهٔ رابطه‌ای، می‌توان گفت که مجموعه‌ها شبیه جدول‌ها، و سندها شبیه رکوردها هستند؛ ولی یک تفاوت بزرگ وجود دارد: تمام رکورد در یک جدول باید دارای فیلدهای یکسان و با ترتیب یکسان باشند، اما هر سند در یک مجموعه ممکن است دارای فیلدهای متفاوتی از سندهای دیگر باشد. تنها الزام برای طرح‌های سندها (علاوه بر محدودیت‌های اندازه) این است که هر سندی باید دارای فیلد '_id' با مقدار منحصر به فرد و غیر آرایه‌ای باشد.
یک جدول در پایگاه داده رابطه‌ای را می‌توان به صورت زیر نشان داد:
در مقابل، یک مجموعه مانگودی‌بی شبیه زیر است:
در هر لحظه می‌توان در یک سند، فیلد جدید اضافه کرد یا فیلدهای قبلی را تغییر نام داد یا حذف کرد. هیچ طرح پیش تعریف شده‌ای وجود ندارد. ساختار سند بسیار ساده است: از فرمت جی‌سون پیروی می‌کند، و شامل دنباله‌ای از جفت‌های کلید-مقدار است؛ بنابراین هر سند معادل آنچه در زبان‌های برنامه‌نویسی مختلف آرایه انجمنی، نگاشت، دیکشنری، یا جدول هش نامیده می‌شود است. کلید در جفت کلید-مقدار نام فیلد است، و مقدار در جفت کلید-مقدار محتوای فیلد است. کلید و مقدار با یک علامت ":" از هم جدا می‌شوند.
یک مقدار می‌تواند عدد، رشته، صحیح و ناصحیح، داده‌های دودویی مانند تصویر، آرایه‌ای از مقادیر (که هر عضو می‌تواند از نوع متفاوتی باشد)، یا یک زیرسند کامل باشد:
"در اینجا مشاهده می‌کنیم که فیلد "Address" شامل یک زیر سند است که دارای دو فیلد "Street" و "City" است."
مانگودی‌بی راه‌اندازهای زیر را به‌طور رسمی دارد:
زبان برنامه‌نویسی تحت وب اوپا(Opa) نیز دارای پشتیبانی توکار از مانگودی‌بی است، که به صورت کامل با زبان یکپارچه شده‌است، و لایهٔ امنیت انواع را بر روی مانگودی‌بی ارائه می‌دهد.
در ضمن تعداد زیادی راه انداز غیررسمی برای زبان‌های کلدفیوژن, دلفی, لوا, روبی, اسمال‌تاک و سایر زبان‌ها وجود دارد.پس از نصب مانگودی‌بی، دستورهای زیر در دسترس هستند: