首页 > 代码库 > 分针网—每日分享:mongoose对查询结果进行排序

分针网—每日分享:mongoose对查询结果进行排序

http://www.fenzhen.cc/id/177
 
 
前面的学习已经可以刷出数据了,不过通过循环取出来后,发现并不是按照想象中的按先后顺序列出来的,而是按照数据在数据库中存放的顺序刷出来的。
 
如图,MongoDB存储数据并没有按照我添加数据的先后顺序,而是按照了author这个字段来的,因此前台刷出的数据也是安装author来的。
技术分享
 
那么如何让前台通过时间来排序呢?
 
解决方法如下:
 
MyModel.find(condition, fields, {sort: [[‘_id‘, -1]]}, callback);
注意 sort 的写法,上例将查询结果按时间倒序,因为 MongoDB 的 _id 生成算法中已经包含了当前的时间,所以这样写不仅没问题,也是推荐的按时间排序的写法。
不过这个find()方法如果要添加第三个参数进行排序的话,那么第二个条件也不能省略,如过没有,就必须写成null,如:
 
MyModel.find({name:‘admin‘}, null, {sort: [[‘_id‘, -1]]}, callback);
 
另外一种写法如下:
MyModel.find({}).sort({‘_id‘:-1}).limit(6).exec(function(err,docs){})
 
 
 
 
学习更多IT知识 加群:272292492
技术分享

 

分针网—每日分享:mongoose对查询结果进行排序