3

如果模型包含 ListField(db.ReferenceField)) 并且在查询后调用to_json()ir 不会将孩子转换为 json,只需将其保留为 OID。有没有办法轻松地将孩子(至少到 X 深层次)转换为 json?

"data": {
 "articles": [],
 "category": {
  "_id": {
    "$oid": "5224905453f0462f5458a724"
  },
  "children": [
    {
      "$oid": "5224905453f0462f5458a725"
    },
    {
      "$oid": "5224905453f0462f5458a726"
    },
    {
      "$oid": "5224905453f0462f5458a727"
    },
    {
      "$oid": "5224905453f0462f5458a728"
    }
  ],
...........
4

2 回答 2

9

代替 to_json() (您可以在文档中覆盖 to_json),使用 to_mongo() 获取 SON 对象,然后更新 SON 对象字段(就像 dict 对象),对于每个参考字段项目将它们替换为 item.to_mongo( ) ,最后返回 bson.json_util.dumps(SON obj)。

#override
def to_json(self):
   data = self.to_mongo()
   for i in range(len(data['children'])):
        data['children'][i]= self.children[i].to_mongo()
   return bson.json_util.dumps(data)
于 2014-05-17T06:55:21.353 回答
0

目前没有,它将文档转换为扩展的 json格式。如果要包装嵌入式文档,则必须将其作为完全自定义的格式来处理,并手动处理转换和解析。

于 2013-09-02T13:41:59.607 回答