2017-01-15 50 views
0

在控制器的,我需要創建嵌套數組返回:Mongoid連接兩個在動物內臟)三列(

[[ 「first_name的 - 姓氏」, 「ID」]]

從包含三列的個人表:first_name,last_name,id。

我有下面的查詢連接所有三個' - ',但我只需要加入前兩列。我將如何實現這一目標?

Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')} 

回答

0

答案由@coreyward工作,如果你想要去的SQL文本路線。您也可以將map塊更改爲以下,這不是非常優雅,但可以工作。

map{|e| [e[0..1].join(' - '), e[2]]} 
1

注:當答案被標記[軌]這個答案寫並沒有提到蒙戈的。

一般來說,我建議避免在ActiveRecord的查詢SQL文本,但能夠完成任務:

Person.pluck("concat(first_name, ' - ', last_name)", :id) 
+0

有沒有辦法在rails中做到這一點?我正在使用mongoid,並試圖避免使用文字 – HoosierCoder

+0

@HoosierCoder這是爲Rails編寫的,但您應該讓您的數據庫處理數據操作。它將始終更高性能,並且[MongoDB支持串聯](https://docs.mongodb.com/manual/reference/operator/aggregation/concat/)。你應該使用它。 – coreyward