Ruby 如何从Mongoid中的嵌入文档中排除字段?

Ruby 如何从Mongoid中的嵌入文档中排除字段?,ruby,mongodb,mongoid,Ruby,Mongodb,Mongoid,我有一个带有嵌入标签的Post文档。有时我只显示文章的标题和标签。在这些情况下,我在mongoid中使用以下查询: Post.only(:title).find(id) 然后,我将查询结果作为json发送给客户机。不幸的是,标记的bson id使json比我需要的要大得多如何从查询中排除“\u id”字段? 以下是我的模型: class Post include Mongoid::Document field :title, :type => String field :b

我有一个带有嵌入标签的Post文档。有时我只显示文章的标题和标签。在这些情况下,我在mongoid中使用以下查询:

Post.only(:title).find(id)
然后,我将查询结果作为json发送给客户机。不幸的是,标记的bson id使json比我需要的要大得多如何从查询中排除“\u id”字段?

以下是我的模型:

class Post
  include Mongoid::Document
  field :title, :type =>  String
  field :body, :type =>  String
  field :tags, :type =>  Array
  embeds_many :tags
end
class Tag
  include Mongoid::Document  
  field :tag, :type =>  String
  field :type, :type =>  String
  embedded_in :post
end

您需要在不使用方法的情况下使用Mongoid的
。像这样的事情应该可以做到:

Post.without(:_id, :body, "tags._id")
它将只返回您的所有文章标题,以及所有嵌入的标签和文章或标签的no
\u id
字段


我还注意到,在Post模型上定义了
field:tags,:type=>Array
,我认为这是多余的。使用
嵌入\u许多
自动为您设置该字段。

有效!谢谢你的指点。我不知道我怎么会忽略了那个方法!