如何在 MongoDB 中進行字母數字排序?


要進行字母數字排序,您需要為 numericOrdering 設定:true。我們先使用文件建立集合 -

> db.alphanumericSortDemo.insertOne({"StudentId":"STU1010"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccf149adceb9a92e6aa194c")
}
> db.alphanumericSortDemo.insertOne({"StudentId":"STU1101"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccf14a2dceb9a92e6aa194d")
}
> db.alphanumericSortDemo.insertOne({"StudentId":"STU1901"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccf14a9dceb9a92e6aa194e")
}
> db.alphanumericSortDemo.insertOne({"StudentId":"STU908"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccf14aedceb9a92e6aa194f")
}
> db.alphanumericSortDemo.insertOne({"StudentId":"STU101"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccf14b2dceb9a92e6aa1950")
}

以下是使用 find() 方法顯示集合中所有文件的查詢 -

> db.alphanumericSortDemo.find().pretty();

這會產生以下輸出 -

{ "_id" : ObjectId("5ccf149adceb9a92e6aa194c"), "StudentId" : "STU1010" }
{ "_id" : ObjectId("5ccf14a2dceb9a92e6aa194d"), "StudentId" : "STU1101" }
{ "_id" : ObjectId("5ccf14a9dceb9a92e6aa194e"), "StudentId" : "STU1901" }
{ "_id" : ObjectId("5ccf14aedceb9a92e6aa194f"), "StudentId" : "STU908" }
{ "_id" : ObjectId("5ccf14b2dceb9a92e6aa1950"), "StudentId" : "STU101" }

案例 1 - 當您希望結果按升序排列時。

以下是在 MongoDB 中進行字母數字排序的查詢 -

> db.alphanumericSortDemo.find({}).sort({"StudentId" : 1}).collation( { locale: "en_US", numericOrdering: true });

這會產生以下輸出 -

{ "_id" : ObjectId("5ccf14b2dceb9a92e6aa1950"), "StudentId" : "STU101" }
{ "_id" : ObjectId("5ccf14aedceb9a92e6aa194f"), "StudentId" : "STU908" }
{ "_id" : ObjectId("5ccf149adceb9a92e6aa194c"), "StudentId" : "STU1010" }
{ "_id" : ObjectId("5ccf14a2dceb9a92e6aa194d"), "StudentId" : "STU1101" }
{ "_id" : ObjectId("5ccf14a9dceb9a92e6aa194e"), "StudentId" : "STU1901" }

案例 2 - 當您希望結果按降序排列時。

以下是在 MongoDB 中進行字母數字排序的查詢 -

> db.alphanumericSortDemo.find({}).sort({"StudentId" : -1}).collation( { locale: "en_US", numericOrdering: true });

這會產生以下輸出 -

{ "_id" : ObjectId("5ccf14a9dceb9a92e6aa194e"), "StudentId" : "STU1901" }
{ "_id" : ObjectId("5ccf14a2dceb9a92e6aa194d"), "StudentId" : "STU1101" }
{ "_id" : ObjectId("5ccf149adceb9a92e6aa194c"), "StudentId" : "STU1010" }
{ "_id" : ObjectId("5ccf14aedceb9a92e6aa194f"), "StudentId" : "STU908" }
{ "_id" : ObjectId("5ccf14b2dceb9a92e6aa1950"), "StudentId" : "STU101" }

更新於: 2019-07-30

480 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告