【发布时间】:2015-05-23 00:13:07
【问题描述】:
我有一个包含一些嵌入文档的文档(其中一些还有进一步的嵌入文档)。
我想以 JSON 格式返回文档内容,但不包含嵌入文档的所有 ID。
我可以这样做:mydoc.to_json(:except => :_id) 但这会删除所有 BSON ID,包括 mydoc 的 ID。
是否有其他方法可以仅去除嵌入的文档 ID?
【问题讨论】:
我有一个包含一些嵌入文档的文档(其中一些还有进一步的嵌入文档)。
我想以 JSON 格式返回文档内容,但不包含嵌入文档的所有 ID。
我可以这样做:mydoc.to_json(:except => :_id) 但这会删除所有 BSON ID,包括 mydoc 的 ID。
是否有其他方法可以仅去除嵌入的文档 ID?
【问题讨论】:
请记住,to_json 这里实际上是两个步骤:
as_json 获取哈希。所以你可以使用as_json而不是to_json来构建一个没有任何_ids的Hash,然后把你关心的_id放回去,最后转换成JSON:
mydoc.as_json(:except => :_id).merge('_id' => mydoc.id).to_json
【讨论】:
to_json 给你的内容,并且可能更具可读性。