ใช้ sort() ตรงๆ MongoDB จัดการชนิดข้อมูลตัวเลขอัตโนมัติ
MongoDB สามารถเรียงลำดับค่าตัวเลขที่เป็น integer และ decimal ผสมกันได้โดยตรงด้วย sort()
สร้างข้อมูลตัวอย่าง
> db.demo755.insertOne({"Value":10});
> db.demo755.insertOne({"Value":10.5});
> db.demo755.insertOne({"Value":9.5});
> db.demo755.insertOne({"Value":12.5});
> db.demo755.insertOne({"Value":11.5});
> db.demo755.insertOne({"Value":6});
แสดงข้อมูลก่อนเรียง
> db.demo755.find();
ผลลัพธ์:
{ "_id" : ObjectId("5eae9e72a930c785c834e572"), "Value" : 10 }
{ "_id" : ObjectId("5eae9e75a930c785c834e573"), "Value" : 10.5 }
{ "_id" : ObjectId("5eae9e79a930c785c834e574"), "Value" : 9.5 }
{ "_id" : ObjectId("5eae9e7fa930c785c834e575"), "Value" : 12.5 }
{ "_id" : ObjectId("5eae9e87a930c785c834e576"), "Value" : 11.5 }
{ "_id" : ObjectId("5eae9e97a930c785c834e577"), "Value" : 6 }
คิวรีเรียงจากน้อยไปมาก
> db.demo755.find().sort({Value:1});
ผลลัพธ์: เรียงถูกต้องทั้ง int และ decimal
{ "_id" : ObjectId("5eae9e97a930c785c834e577"), "Value" : 6 }
{ "_id" : ObjectId("5eae9e79a930c785c834e574"), "Value" : 9.5 }
{ "_id" : ObjectId("5eae9e72a930c785c834e572"), "Value" : 10 }
{ "_id" : ObjectId("5eae9e75a930c785c834e573"), "Value" : 10.5 }
{ "_id" : ObjectId("5eae9e87a930c785c834e576"), "Value" : 11.5 }
{ "_id" : ObjectId("5eae9e7fa930c785c834e575"), "Value" : 12.5 }