在MongoDB中,可以使用$sort
操作符來按數值對字符串進行排序。首先,你需要將字符串轉換為數值類型,然后使用$sort
操作符對數值進行排序。
以下是一個示例:
db.collection.insertMany([
{ name: "John", age: "25" },
{ name: "Alice", age: "30" },
{ name: "Bob", age: "20" }
]);
age
字段進行數值排序:db.collection.aggregate([
{ $addFields: { ageNum: { $toInt: "$age" } } },
{ $sort: { ageNum: 1 } }
]);
在這個示例中,我們使用$addFields
操作符創建一個新字段ageNum
,將age
字段轉換為數值類型。然后,使用$sort
操作符按升序對ageNum
字段進行排序。
結果如下:
{ "_id" : ObjectId("5fe7a3a6d0d8b132c9b9a8b2"), "name" : "Bob", "age" : "20", "ageNum" : 20 }
{ "_id" : ObjectId("5fe7a3a6d0d8b132c9b9a8b0"), "name" : "John", "age" : "25", "ageNum" : 25 }
{ "_id" : ObjectId("5fe7a3a6d0d8b132c9b9a8b1"), "name" : "Alice", "age" : "30", "ageNum" : 30 }
現在,集合中的文檔已按ageNum
字段的數值進行排序。