如何将mongoid文档转换为JSON剥离嵌入式文档ID,但保留主文档ID?

时间:2015-05-23 00:13:08

标签: ruby json mongoid

我有一个包含一些嵌入式文档的文档(其中一些还有其他嵌入式文档)。

我希望将文档内容作为JSON返回,但不包含嵌入文档的所有ID。

我可以这样做:mydoc.to_json(:except =>:_id) 但是它会删除所有BSON ID,包括mydoc的ID。

是否有其他方法剥离嵌入的文档ID?

1 个答案:

答案 0 :(得分:1)

请注意,to_json实际上是两个步骤:

  1. 致电as_json获取哈希。
  2. 将该哈希转换为JSON字符串。
  3. 因此,您可以使用as_json代替to_json来构建没有任何_id的哈希,然后将您关注的_id放回去,最后转换为JSON:

    mydoc.as_json(:except => :_id).merge('_id' => mydoc.id).to_json