Mongoid 在 pluck() 中加入三列中的两列
Mongoid join two of three columns in pluck()
在控制器中,我需要创建一个 returns:
的嵌套数组
[["first_name - last_name", "id"]]
来自 persons table 其中包含三列:first_name、last_name、id。
下面的查询用“-”连接了所有三列,但我只需要连接前两列。我将如何实现这一目标?
Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')}
注意:这个答案是在答案被标记为[rails]时写的,没有提到Mongo。
一般来说,我建议避免在 ActiveRecord 查询中使用 SQL 文字,但这可以完成工作:
Person.pluck("concat(first_name, ' - ', last_name)", :id)
如果你想走 SQL 文字路线,@coreyward 的答案是有效的。您还可以将 map
块更改为以下内容,这不是非常优雅但有效。
map{|e| [e[0..1].join(' - '), e[2]]}
在控制器中,我需要创建一个 returns:
的嵌套数组[["first_name - last_name", "id"]]
来自 persons table 其中包含三列:first_name、last_name、id。
下面的查询用“-”连接了所有三列,但我只需要连接前两列。我将如何实现这一目标?
Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')}
注意:这个答案是在答案被标记为[rails]时写的,没有提到Mongo。
一般来说,我建议避免在 ActiveRecord 查询中使用 SQL 文字,但这可以完成工作:
Person.pluck("concat(first_name, ' - ', last_name)", :id)
如果你想走 SQL 文字路线,@coreyward 的答案是有效的。您还可以将 map
块更改为以下内容,这不是非常优雅但有效。
map{|e| [e[0..1].join(' - '), e[2]]}