MongoDB-তে data-র প্রতিটা অংশ এই তিন-স্তরের গঠনের ভিতরে থাকে: একটা database-এ collection থাকে, আর প্রতিটা collection-এ document থাকে। এই hierarchy বোঝা এই কোর্সের বাকি প্রতিটা command অর্থবহ করে তোলে।
একটা database হলো top-level container — একটা একক MongoDB server অনেক database host করতে পারে, প্রতিটা অন্যগুলো থেকে আলাদা। একটা সাধারণ প্রজেক্ট একটা database ব্যবহার করে, যেমন blogApp বা shopDB।
একটা collection হলো related document-এর একটা গ্রুপ, SQL-এর একটা table-এর মোটামুটি সমতুল্য — শুধু একটা collection-এর default হিসেবে কোনো fixed schema নেই। একটা users collection user document ধারণ করে, একটা orders collection order document ধারণ করে।
একটা document হলো একটা একক record, field/value pair-এর একটা সেট হিসেবে সংরক্ষিত — একটা row-এর MongoDB সমতুল্য। একই collection-এর document-এর একই field share করার প্রয়োজন নেই, যদিও practice-এ একটা collection-এর বেশিরভাগ document convention অনুযায়ী একটা সামঞ্জস্যপূর্ণ আকৃতি অনুসরণ করে।
// "users" collection-এর ভিতরে একটা document
{
_id: ObjectId("651f2a9e1c4a2b0012a4f8d1"),
name: "Rahul Verma",
email: "rahul@example.com",
age: 24,
isActive: true
}MongoDB document দেখতে JSON-এর মতো, কিন্তু সেগুলো আসলে BSON ("Binary JSON") হিসেবে সংরক্ষিত — একটা binary-encoded format যা JSON-এ স্বাভাবিকভাবে না থাকা data type যোগ করে, যেমন date, binary data, আর _id-এর জন্য ব্যবহৃত ObjectId type। আপনি JSON-এর মতো দেখতে data লেখেন আর পড়েন; MongoDB আপনার জন্য BSON conversion handle করে।
_id field
আপনি যদি একটা না দেন তাহলে প্রতিটা document স্বয়ংক্রিয়ভাবে একটা unique _id field পায় — MongoDB একটা ObjectId তৈরি করে, একটা 12-byte value যা কার্যকরভাবে unique guaranteed। এটা একটা SQL primary key-এর সরাসরি সমতুল্য।