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

MongoDB-এ ({$natural: 1}) সর্ট অর্ডার বোঝা


ন্যাচারাল অর্ডার সর্ট: {$natural: -1}

MongoDB-এ {$natural: 1} বা {$natural: -1} দিয়ে ডকুমেন্টগুলো ফিজিক্যাল স্টোরেজ অর্ডারে (ন্যাচারাল অর্ডার) সর্ট করা হয়। -1 মানে LIFO (লাস্ট ইন ফার্স্ট আউট) - সবশেষে ইনসার্ট হওয়া ডকুমেন্ট প্রথমে আসে।

নমুনা ডেটা তৈরি

> db.demo614.insertOne({ "CountryName": "US" })
> db.demo614.insertOne({ "CountryName": "UK" })
> db.demo614.insertOne({ "CountryName": "AUS" })
> db.demo614.insertOne({ "CountryName": "IND" })

ডিফল্ট ফাইন্ড (ইনসারশন অর্ডার)

> db.demo614.find()

আউটপুট:

{ "_id": ObjectId("..."), "CountryName": "US" }
{ "_id": ObjectId("..."), "CountryName": "UK" }
{ "_id": ObjectId("..."), "CountryName": "AUS" }
{ "_id": ObjectId("..."), "CountryName": "IND" }

ন্যাচারাল ডিসেন্ডিং সর্ট (LIFO)

> db.demo614.find().sort({ $natural: -1 })

ফলাফল:

{ "_id": ObjectId("..."), "CountryName": "IND" }
{ "_id": ObjectId("..."), "CountryName": "AUS" }
{ "_id": ObjectId("..."), "CountryName": "UK" }
{ "_id": ObjectId("..."), "CountryName": "US" }

ব্যাখ্যা

  • $natural: 1: ফরওয়ার্ড ন্যাচারাল অর্ডার (ফিজিক্যাল স্টোরেজ অর্ডার, সাধারণত ইনসারশন অর্ডার)
  • $natural: -1: রিভার্স ন্যাচারাল অর্ডার (LIFO - লাস্ট ইনসার্টেড ফার্স্ট)
  • ক্যাপড কলেকশন (capped collection) এ ন্যাচারাল অর্ডার গ্যারান্টイド ইনসারশন অর্ডার
  • নন-ক্যাপড কলেকশনে আপডেট/মুভের কারণে ফিজিক্যাল লোকেশন পরিবর্তন হলে অর্ডার বদলতে পারে
  • বিকল্প: টাইমস্ট্যাম্প ফিল্ড (createdAt) বা _id (ObjectId-তে টাইমস্ট্যাম্প আছে) দিয়ে সর্ট করুন: sort({ _id: -1 }) - এটি আরও নির্ভরযোগ্য

ন্যাচারাল সর্ট কোনো ইন্ডেক্স ব্যবহার করে না, ফুল কোলেকশন স্ক্যান করে।

  1. AI ফাইল কী? অ্যাডোব ইলাস্ট্রেটর আর্টওয়ার্ক ফাইল

  2. ৩ডি প্রিন্টিং কী? ইতিহাস, কাজকাজ ও ভবিষ্যৎ

  3. আইপি ঠিকানা কী?

  4. Windows 11 SE খুঁজে বের করুন: Microsoft-এর ক্লাসরুম-রেডি OS