【问题标题】:How to limit the returned fields and exclude _id in mongoid如何限制返回字段并排除mongoid中的_id
【发布时间】:2013-12-12 16:31:31
【问题描述】:

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

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。有什么想法吗?

【问题讨论】:

    标签: ruby mongodb scope mongoid projection


    【解决方案1】:

    看看https://github.com/nesquena/rabl
    这可以帮助您呈现更轻量的 json 响应。您可以创建一些键并使用您想要的任何值在其中构建值,而不会污染您的控制器。

    【讨论】:

    • 我看不出这与我的问题有什么关系。我的json渲染还可以,只想限制顶部查询返回的字段。
    • 好的,抱歉,我误解了你的问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2018-07-22
      相关资源
      最近更新 更多