1. 程式人生 > >mongoose對查詢結果進行排序

mongoose對查詢結果進行排序

前面的學習已經可以刷出資料了,不過通過迴圈取出來後,發現並不是按照想象中的按先後順序列出來的,而是按照資料在資料庫中存放的順序刷出來的。

如圖,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){})