ন্যাচারাল অর্ডার ($natural)
MongoDB ডিফল্টভাবে ডকুমেন্ট গুলো ইনসার্ট হওয়ার ক্রমেই সংরক্ষণ করে। এই ক্রম পাওয়ার জন্য $natural অপারেটর ব্যবহার করা হয়।
সিনট্যাক্স
db.yourCollectionName.find().sort({ "$natural": 1 });
উদাহরণ: ডকুমেন্ট তৈরি
> db.orderDocsDemo.insertOne({"UserScore":87});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531a316f542d757e2b44b") }
> db.orderDocsDemo.insertOne({"UserScore":98});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531a816f542d757e2b44c") }
> db.orderDocsDemo.insertOne({"UserScore":99});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531b216f542d757e2b44d") }
> db.orderDocsDemo.insertOne({"UserScore":67});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531b716f542d757e2b44e") }
> db.orderDocsDemo.insertOne({"UserScore":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531bd16f542d757e2b44f") }
> db.orderDocsDemo.insertOne({"UserScore":91});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531c416f542d757e2b450") }
> db.orderDocsDemo.insertOne({"UserScore":86});
{ "acknowledged" : true, "insertedId" : ObjectId("5c9531c816f542d757e2b451") }
ডিফল্ট অর্ডার (ইনসার্টের ক্রম)
> db.orderDocsDemo.find();
আউটপুট: ডকুমেন্ট গুলো ইনসার্ট হওয়ার ক্রমেই আসে।
$natural দিয়ে সোর্ট
> db.orderDocsDemo.find().sort({ "$natural": 1 });
আউটপুট একই থাকে - ইনসার্ট করার ক্রম অনুযায়ী।
ফিল্ড অনুযায়ী সোর্ট (UserScore)
> db.orderDocsDemo.find().sort({ "UserScore": 1 });
আউটপুট (오름차순):
{ "UserScore" : 67 }
{ "UserScore" : 78 }
{ "UserScore" : 86 }
{ "UserScore" : 87 }
{ "UserScore" : 91 }
{ "UserScore" : 98 }
{ "UserScore" : 99 }
সারসংক্ষেপ: ডিফল্টভাবে MongoDB ইনসার্ট ক্রম ($natural) মেনে চলে। নির্দিষ্ট ফিল্ড অনুযায়ী সোর্ট করার জন্য sort({field: 1}) (ascending) বা sort({field: -1}) (descending) ব্যবহার করুন।