Mongoid在pluck()中连接三列中的两列

时间:2017-01-15 01:14:06

标签: mongoid

在控制器中,我需要创建一个返回的嵌套数组:

[[“first_name - last_name”,“id”]]

来自包含三列的人员表:first_name,last_name,id。

我有下面的查询,用' - '连接所有三个,但我只需要加入前两列。我怎么做到这一点?

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

2 个答案:

答案 0 :(得分:1)

注意:这个答案是在答案被标记为[rails]并且没有提到Mongo时写的。

通常我建议在ActiveRecord查询中避免使用SQL文字,但这可以完成工作:

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

答案 1 :(得分:0)

如果您想要使用SQL文字路线,@ coreyward的答案就有效。您也可以将map块更改为以下内容,这不是非常优雅但有效。

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