مقدمه MongoDB (MongoDB Intro)
مقدمه MongoDB: شروع سفر با دیتابیس NoSQL 🍃
به دوره MongoDB خوش آمدید! MongoDB یکی از محبوبترین و قدرتمندترین دیتابیسهای NoSQL در جهان است که برای اپلیکیشنهای مدرن و مقیاسپذیر طراحی شده است.
MongoDB چیست؟
MongoDB یک دیتابیس NoSQL document-oriented است که دادهها را به صورت documents (مشابه JSON) ذخیره میکند. برخلاف دیتابیسهای رابطهای (SQL) که از جداول و ردیفها استفاده میکنند، MongoDB از collections و documents استفاده میکند.
مقایسه SQL و NoSQL:
<th style="padding: 10px; border: 1px solid #ddd;">مفهوم</th> <th style="padding: 10px; border: 1px solid #ddd;">SQL (MySQL, PostgreSQL)</th> <th style="padding: 10px; border: 1px solid #ddd;">NoSQL (MongoDB)</th>| ساختار | Tables (جداول) | Collections (مجموعهها) |
| داده | Rows (ردیفها) | Documents (سندها) |
| Schema | ثابت و از پیش تعریف شده | انعطافپذیر (Schema-less) |
چرا MongoDB؟
- Schema-less (بدون Schema ثابت): میتوانید documents با ساختارهای مختلف را در یک collection ذخیره کنید. این انعطافپذیری برای اپلیکیشنهای در حال توسعه عالی است.
- مقیاسپذیری افقی (Horizontal Scaling): میتوانید با اضافه کردن سرورهای بیشتر، دیتابیس را گسترش دهید (Sharding).
- عملکرد بالا: برای read/write operations سریع طراحی شده است.
- JSON-like Documents: دادهها به صورت BSON (Binary JSON) ذخیره میشوند که با JavaScript و زبانهای مدرن سازگار است.
- Query Language قدرتمند: MongoDB query language بسیار قدرتمند و انعطافپذیر است.
مثال ساده:
در یک دیتابیس SQL، شما باید یک جدول با ستونهای مشخص ایجاد کنید:
-- SQL
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
age INT
);
INSERT INTO users VALUES (1, 'Ali', 'ali@example.com', 25);
در MongoDB، شما مستقیماً document را insert میکنید:
// MongoDB
db.users.insertOne({
name: "Ali",
email: "ali@example.com",
age: 25
});
💡 نکته: MongoDB برای اپلیکیشنهایی که نیاز به انعطافپذیری در ساختار داده دارند، یا دادههای unstructured دارند (مثل log files، social media posts)، عالی است.
✅ یاد گرفتید: MongoDB یک دیتابیس NoSQL قدرتمند است که با انعطافپذیری و مقیاسپذیری بالا، برای اپلیکیشنهای مدرن ایدهآل است!
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.