mongoose對查詢結果進行排序

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

如圖,mongodb存儲數據並沒有按照我添加數據的先後順序,而是按照了author這個字段來的,因此前臺刷出的數據也是安裝author來的。


那麼如何讓前臺通過時間來排序呢?以下是通過http://www.csser.com/board/4f4e92dbeb0defac5700011e查找的到的解決方法。

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){})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章