在控制器的,我需要創建嵌套數組返回:Mongoid連接兩個在動物內臟)三列(
[[ 「first_name的 - 姓氏」, 「ID」]]
從包含三列的個人表:first_name,last_name,id。
我有下面的查詢連接所有三個' - ',但我只需要加入前兩列。我將如何實現這一目標?
Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')}
在控制器的,我需要創建嵌套數組返回:Mongoid連接兩個在動物內臟)三列(
[[ 「first_name的 - 姓氏」, 「ID」]]
從包含三列的個人表:first_name,last_name,id。
我有下面的查詢連接所有三個' - ',但我只需要加入前兩列。我將如何實現這一目標?
Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')}
答案由@coreyward工作,如果你想要去的SQL文本路線。您也可以將map
塊更改爲以下,這不是非常優雅,但可以工作。
map{|e| [e[0..1].join(' - '), e[2]]}
注:當答案被標記[軌]這個答案寫並沒有提到蒙戈的。
一般來說,我建議避免在ActiveRecord的查詢SQL文本,但能夠完成任務:
Person.pluck("concat(first_name, ' - ', last_name)", :id)
有沒有辦法在rails中做到這一點?我正在使用mongoid,並試圖避免使用文字 – HoosierCoder
@HoosierCoder這是爲Rails編寫的,但您應該讓您的數據庫處理數據操作。它將始終更高性能,並且[MongoDB支持串聯](https://docs.mongodb.com/manual/reference/operator/aggregation/concat/)。你應該使用它。 – coreyward