我尝试按包含数字的字段进行排序,在执行.sort({title: 1})
时,它会返回1,10,11,12,2,3,4
之类的结果。我想让它像1,2,3,4,10,11,12
那样返回,这可能直接来自mongo吗?
答案 0 :(得分:3)
您可能正在对包含字符串而非数字的字段进行排序。 MongoDB按照自然顺序对数字进行排序,按字母顺序对字符串进行排序。
您需要将title
字段的值转换为整数才能获得自然顺序。
这是对包含字符串和整数的字段a
上的集合进行排序的示例结果。
{ _id: ObjectId("53975b47bff015b5a400097b"), a: 1 }
{ _id: ObjectId("53975b74bff015c524000864"), a: 9 }
{ _id: ObjectId("53975b5d74c5e23516000919"), a: 10 }
{ _id: ObjectId("53975b5d74c5e23516000200"), a: "1" }
{ _id: ObjectId("53975b8ebff01545bd0006b4"), a: "10" }
{ _id: ObjectId("53975b9e32105bb92f0007fd"), a: "9" }
答案 1 :(得分:0)
这可以帮助您按升序排序:-
str = '< a href="https://www.blabla/k20832 > word1 word2'
start_Index=str.find('<')
end_Index=str.find('>')
print(str[:start_Index+1]+str[end_Index:])
:)
答案 2 :(得分:0)
router.get('/projectstatus/list', (req, res) => {
Addstatus
.find()
.sort({order: 1})
.collation({locale: "en_US", numericOrdering: true})
.then(addstatus => { res.json(addstatus) })
.catch(err => { console.log("------------------Data is not found----------------\n") });;
});