در MongoDB، دو مفهوم اصلی document و collection وجود دارد که پایهی دادههای این پایگاه داده NoSQL را تشکیل میدهند:
۱. Document (سند)
Document یا سند یک واحد اصلی ذخیرهسازی داده در MongoDB است. اسناد در قالب JSON یا BSON (Binary JSON) ذخیره میشوند. هر سند شامل مجموعهای از کلید-مقدار (key-value pairs) است که میتواند انواع دادههای مختلف مانند عدد، رشته، آرایه، شیء تو در تو و... را داشته باشد.
🔹 مثال یک سند در MongoDB:
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"name": "Ali",
"age": 30,
"skills": ["Python", "MongoDB"],
"address": {
"city": "Tehran",
"zip": "12345"
}
}
- کلید
_id
: هر سند باید یک کلید_id
منحصر به فرد داشته باشد که به صورت خودکار توسط MongoDB مقداردهی میشود (مگر اینکه مقدار آن را خودتان تنظیم کنید). - نوع دادهها: یک سند میتواند شامل انواع دادههای مختلف مانند رشته (
string
)، عدد (number
)، آرایه (array
) و اشیای تو در تو (object
) باشد.
۲. Collection (مجموعه)
Collection یا مجموعه در MongoDB معادل جدول (Table) در پایگاه دادههای رابطهای است. یک collection مجموعهای از اسناد (documents) است که معمولاً دارای ساختاری مشابه اما غیرسختگیرانه (schemaless) هستند، یعنی اسناد داخل یک مجموعه میتوانند ساختار متفاوتی داشته باشند.
🔹 مثال یک Collection: در یک Collection به نام users
ممکن است اسناد مختلفی به این شکل ذخیره شوند:
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"name": "Ali",
"age": 30,
"skills": ["Python", "MongoDB"]
}
{
"_id": ObjectId("507f1f77bcf86cd799439012"),
"name": "Sara",
"email": "sara@example.com",
"city": "Isfahan"
}
- در پایگاه دادههای رابطهای، تمام ردیفهای یک جدول باید دقیقاً همان ساختار را داشته باشند، اما در MongoDB، هر سند در یک Collection میتواند ساختار متفاوتی داشته باشد.
جمعبندی:
ویژگی | Document (سند) | Collection (مجموعه) |
---|---|---|
معنی | یک رکورد از دادهها (معادل یک سطر در SQL) | گروهی از اسناد (معادل یک جدول در SQL) |
فرمت | JSON/BSON | شامل چندین سند JSON |
انعطافپذیری | ساختار هر سند میتواند متفاوت باشد | شامل اسنادی با ساختار مشابه اما نه الزاماً یکسان |
🔹 MongoDB به دلیل انعطافپذیری بالا و عدم نیاز به Schema ثابت برای دادهها، یک انتخاب عالی برای پروژههایی است که دادههای متغیری دارند.