如何限制返回的字段并在mongoid中排除_id

时间:2013-12-12 16:31:31

标签: ruby mongodb scope mongoid projection

我想获取特定的文档属性并排除_id。这是我的控制器动作:

def index
  @humans = Human.only([:name, :dob])

  respond_to do |format|
    format.json { render :json => @humans.to_json(:except => :_id) }
  end
end

它工作正常,但我认为这是一种解决方法,而不是做我想要的正确方法。

理想情况下,我想说@humans = Human.only([:name, :dob]).without(:_id)之类的内容,但这不起作用,因为您无法在mongoid中将onlywithout结合使用。但是,mongo允许您使用投影从一组特定的包含属性中仅排除_id。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

看看https://github.com/nesquena/rabl
这有助于您渲染更轻的json响应。您可以创建一些键并根据需要构建值,而不会污染控制器。

答案 1 :(得分:0)

Human.pluck(:name, :dob)怎么样?它可能不是你所需要的。