mongoose数字排序错乱
今天做一个程序进行将类型为string的字段进行数字排队。
首先我使用的是sort函数进行排序,我直接排序
DeviceModel.find(select)
.sort({'name':1})
.skip((body.pageNo - 1) * body.pageSize)
.limit(body.pageSize)
直接使用sort排序发现数字不正确,如下图
这显然不是我们想要的123456排序结果。
经过查阅资料发现了collation函数,将代码改为
DeviceModel.find(select).collation( { locale: 'zh' ,numericOrdering:true} )
.sort({'name':1})
.skip((body.pageNo - 1) * body.pageSize)
.limit(body.pageSize)
我们在来看看查询结果
这样就是我们想要的结果了
不错不错