নাল ভ্যালু থাকা ফিল্ড সর্ট করতে 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}নাল ভ্যালু এক্সক্লুড করে না (নাল এক্সিস্ট করে), শুধু ফিল্ড অনুপস্থিত ডকুমেন্ট এক্সক্লুড করে। নাল লাস্টে দেখাতে চাইলে আলাদা লজিক লাগবে।