2017-05-05 50 views
0

我有一個表,我想按名稱按升序排序。 我試圖做這種方式,但它並沒有幫助:排序和保存與bookshelf.js

return this.Model.query((qb) => { 
    qb.orderBy('contentName', 'ASC'); 
}).save(); 

我錯過了什麼,我覺得這不應該是這麼辛苦,但我不能讓它工作。 bookshelf.js文件並沒有真正幫助我。我在這裏是初學者,所以這可能是原因。謝謝!

回答

0

save()僅用於插入/更新數據。爲了從查詢中提取數據,我們對單個模型使用fetch(),對於集合使用fetchAll()。因此,請嘗試將您的代碼更改爲:

return this.Model.query((qb) => { 
    qb.orderBy('contentName', 'ASC'); 
}).fetchAll(); 
+0

感謝您的回答。不過,我實際上希望數據得到更新,所以無需在每次提取數據時進行排序。 只需知道如何在插入新數據時對錶格進行排序就可以了。 – Southgarden116

+0

你的意思是你想用相同的數據替換表中的數據,但是要排序?如果是的話,這不是關係數據庫的工作方式:如果實施非常依賴並且沒有訂單數據的保證,那麼行的物理放置將被帶回,而不帶'ORDER BY'子句。 – flaviodesousa

+1

好吧,那麼當我讀取數據的時候,我會繼續使用orderBy。謝謝你的信息! – Southgarden116