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

MongoDB-এ নাল ভ্যালু থাকা ফিল্ড সর্ট করা (ORDERBY)

নাল ভ্যালু থাকা ফিল্ড সর্ট করতে MongoDB v3.2+ এ ডিপ্রিকেটেড $orderby-র পরিবর্তে cursor.sort() বা অগরিগেশনে $sort ব্যবহার করুন। একটি কালেকশন তৈরি করুন নাল ভ্যালুসহ:

> db.demo530.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2990ef4dcbee04fbbbec") }
> db.demo530.insertOne({"Name":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2991ef4dcbee04fbbbed") }
> db.demo530.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2992ef4dcbee04fbbbee") }
> db.demo530.insertOne({"Name":"Adam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2995ef4dcbee04fbbbef") }
> db.demo530.insertOne({"Name":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b2999ef4dcbee04fbbbf0") }
> db.demo530.insertOne({"Name":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8b299eef4dcbee04fbbbf1") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo530.find();

আউটপুট:

অগরিগেশনে $match (exists চেক) এবং $sort ব্যবহার করে অ্যাসেন্ডিং সর্ট:

> db.demo530.aggregate([
    {$match: {"Name": {$exists: true}}},
    {$sort: { "Name": 1}}
]);

সর্টেড আউটপুট (নাল ভ্যালুগুলো প্রথমে আসে):

ব্যাখ্যা: MongoDB-তে নাল ভ্যালু সর্টে সবচেয়ে ছোট বলে বিবেচিত হয়, তাই অ্যাসেন্ডিং সর্টে নালগুলো প্রথমে আসে। $match: {$exists: true} নাল ভ্যালু এক্সক্লুড করে না (নাল এক্সিস্ট করে), শুধু ফিল্ড অনুপস্থিত ডকুমেন্ট এক্সক্লুড করে। নাল লাস্টে দেখাতে চাইলে আলাদা লজিক লাগবে।

  1. MongoDB-এ $type অপারেটর ব্যবহার করে টাইপ ভিত্তিক কোয়েরি

  2. MongoDB-এ ক্যাপড (Capped) কালেকশন তৈরি ও ব্যবহার

  3. MongoDB-তে distinct() ব্যবহার করে ইউনিক ভ্যালু বের করা

  4. MongoDB ডকুমেন্ট থেকে নাল ভ্যালু বাদ দেওয়া