2016-11-29 56 views
1

在客戶端,從現在開始,它從數據庫接收一組記錄標籤。下面的代碼是與Sequelize一起用來調用所有記錄標籤的查詢。Sequalize,findall查詢,你如何以特定的順序返回數組?

我的名字(字符串),以便獲得一個數組,但

數組是區分大小寫的,因此,如果名稱是資本將在數組的開始。

目前

:我將在什麼它輸出一個例子給

Ç

d

一個

b

ç

d

,但我試圖讓它返回這樣

一個

一個

b

Ç

Ç

d

d

如果一切都失敗了,我只會讓客戶端上的一些邏輯,但任何建議,將不勝感激。

router.get('/', function (req, res) { 
    RecordLabel.findAll({ 
    order: ('name').toUpperCase() 
    }) 
    .then(function (recordLabels) { 
    return res.json(recordLabels) 
    }) 
    .catch(function (err) { 
    return res.json({ error: err}) 
    }) 
}) 

回答

1

這個順序問題不是從sequelize但PostgreSQL的推導。在某些配置中,即使通過主鍵或id,posstgresql也不會排序。如果您有特權,更改數據庫區域設置可以爲您工作。

After a query has produced an output table (after the select list has been processed) it can optionally be sorted. If sorting is not chosen, the rows will be returned in an unspecified order. The actual order in that case will depend on the scan and join plan types and the order on disk, but it must not be relied on. A particular output ordering can only be guaranteed if the sort step is explicitly chosen.

看看這個答案:link

1

enter image description here使用本:

router.get('/', function (req, res) { 
var sequelize=require('sequelize') 
RecordLabel.findAll({ 
    order:[sequelize.fn('lower', sequelize.col('name'))] 
}) 
.then(function (recordLabels) { 
    return res.json(recordLabels) 
}) 
.catch(function (err) { 
    return res.json({ error: err}) 
    }) 
}) 
+0

類型錯誤:sequelize.col不是一個函數 在recordLabel.js:35:44 在Layer.handle [as handle_request] –

+0

@KaiKeanaaina你的續集版本是什麼? – farhadamjady

+0

我已經測試過它的最新版本,並且它的返回正確按照你的要求排序 – farhadamjady

相關問題