কম্পিউটার টিউটোরিয়াল

MongoDB-এ ন্যাচারেল অর্ডার (Natural Order) দিয়ে সর্ট করা ($natural)

MongoDB-এ ডকুমেন্টগুলো ডিস্কে সংরক্ষিত থাকার ফিজিক্যাল অর্ডার (natural order) অনুযায়ী সর্ট করার জন্য $natural অপারেটর ব্যবহার করা হয়। এটি সাধারণত ইনসার্শন অর্ডার (insertion order) নির্দেশ করে, তবে ডকুমেন্ট মুভ (move) হলে পরিবর্তন হতে পারে।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo684.insertOne({ Value: 10 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea530cea7e81adc6a0b3957") }
> db.demo684.insertOne({ Value: 50 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea530d1a7e81adc6a0b3958") }
> db.demo684.insertOne({ Value: 60 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea530d4a7e81adc6a0b3959") }
> db.demo684.insertOne({ Value: 40 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea530d8a7e81adc6a0b395a") }

সব ডকুমেন্ট দেখানো (ডিফল্ট অর্ডার)

> db.demo684.find();

আউটপুট (ইনসার্শন অর্ডার):

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

_id অনুযায়ী সর্ট (Ascending)

> db.demo684.find().sort({ '_id': 1 });

আউটপুট (এখানে _id এবং ন্যাচারেল অর্ডার একই):

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

$natural ব্যবহার করে সর্ট

> db.demo684.find().sort({ $natural: 1 });

আউটপুট (ফিজিক্যাল স্টোরেজ অর্ডার):

{ "_id" : ObjectId("5ea530cea7e81adc6a0b3957"), "Value" : 10 }
{ "_id" : ObjectId("5ea530d1a7e81adc6a0b3958"), "Value" : 50 }
{ "_id" : ObjectId("5ea530d4a7e81adc6a0b3959"), "Value" : 60 }
{ "_id" : ObjectId("5ea530d8a7e81adc6a0b395a"), "Value" : 40 }

মূল পয়েন্টসমূহ

  • $natural: 1 — ফরওয়ার্ড ন্যাচারেল অর্ডার (ইনসার্শন অর্ডার সাধারণত)۔
  • $natural: -1 — রিভার্স ন্যাচারেল অর্ডার (সর্বশেষ ইনসার্টেড প্রথমে)۔
  • ন্যাচারেল অর্ডার ≠ _id অর্ডার: যদি ডকুমেন্ট আপডেট হয়ে বড় হয় এবং ডিস্কে নতুন জায়গায় মুভ করে, তবে ন্যাচারেল অর্ডার পরিবর্তন হতে পারে। _id (ObjectId) সবসময় ইনসার্শন টাইম এনকোড করে রাখে।
  • _id দিয়ে সর্ট করাই সবচেয়ে নির্ভরযোগ্য ইনসার্শন অর্ডার পাওয়ার উপায়।
  • ক্যাপড কালেকশন (Capped Collection)-এ ন্যাচারেল অর্ডার গ্যারান্টি করা থাকে।
  1. MongoDB-এ ইনার অ্যারে সর্ট কীভাবে করবেন?

  2. MongoDB-এ অবরোহী ক্রমে (descending order) সর্ট করার পদ্ধতি

  3. MongoDB-এ আরোহী ক্রমে (ascending order) সর্ট করার পদ্ধতি

  4. MongoDB কনসোল ক্লিয়ার করার পদ্ধতি