কারণ MongoDB সাধারণ JSON-এর বদলে BSON হিসেবে data সংরক্ষণ করে, এটা JSON-এ স্বাভাবিকভাবে থাকা তুলনায় একটা সমৃদ্ধ data type সেট সমর্থন করে — এই lesson যেগুলো আপনি আসলে ব্যবহার করবেন সেগুলো covers করে।
| Type | উদাহরণ | নোট |
|---|---|---|
| String | "Rahul Verma" | UTF-8 text, MongoDB-র সবচেয়ে সাধারণ type |
| Number | 27, 3.14 | MongoDB internally Int32, Int64, আর Double আলাদা করে |
| Boolean | true, false | |
| Date | ISODate("2026-08-19") | Unix epoch থেকে millisecond হিসেবে সংরক্ষিত |
| ObjectId | ObjectId("651f2a...") | _id-এর জন্য default type — নিচে দেখুন |
| Array | ["HTML", "CSS", "React"] | একটা field অন্য object সহ value-র একটা list ধরে রাখতে পারে |
| Embedded Document | { city: "Kolkata" } | একটা field-এর value হিসেবে একটা nested object |
| Null | null | Explicitly "কোনো value না," একটা missing field থেকে ভিন্ন |
একটা date-কে plain string হিসেবে সংরক্ষণ করার বদলে সবসময় new Date() দিয়ে date তৈরি করুন — একটা real Date type সঠিকভাবে sort আর compare করে, আর $gt-এর মতো range operator দিয়ে query করা যায়:
db.orders.insertOne({
product: "Notebook",
orderedAt: new Date()
})একটা ObjectId ১২ byte, একটা timestamp, একটা random value, আর একটা incrementing counter থেকে তৈরি — যার মানে পরে generate করা ObjectId আগেরগুলোর পরে sort হয়, আর আপনি সরাসরি একটা থেকে একটা আনুমানিক তৈরির সময় extract করতে পারেন:
const id = ObjectId("651f2a9e1c4a2b0012a4f8d1")
id.getTimestamp()
// ISODate("2023-10-05T14:22:22.000Z")ObjectId একটা creation timestamp encode করে
আপনার খুব কমই হাতে একটা ObjectId তৈরি করতে হয় — MongoDB-কে insert-এ এটা generate করতে দিন। এটা একটা timestamp encode করে জানা প্রধানত বোঝার জন্য useful কেন ObjectId মোটামুটি তৈরির order অনুযায়ী sortable।