在MongoEngine查询中获取引用对象的数据,而不仅仅是id

时间:2015-02-11 07:06:56

标签: python mongodb pymongo mongoengine

我有一组模型如下:

import mongoengine as mongo

class Post(mongo.DynamicDocument):
    text = mongo.StringField() 

class User(mongo.DynamicDocument):
    name = mongo.StringField(required=True)
    posts = mongo.ListField(mongo.ReferenceField(Post))

当我查询用户时,请说id = 1

user = User.objects.get(id=1)
print(user.to_json())

我得到了有效载荷:

{
     '_id': {'$oid': "1"},
     'name': 'someUser',
     'posts': [
         {'id': {'$oid': "23"}}
     ]
 }

当我查询用户时,我希望能够查看用户所有帖子的数据,除了相关帖子的ID之外。

我怎样才能得到这样的东西?

{
     '_id': {'$oid': "1"},
     'name': 'someUser',
     'posts': [
         {
             'id': {'$oid': "23"},
             'name': 'somePost'
         }
     ]
 }

1 个答案:

答案 0 :(得分:2)

您需要在模型中指定应通过传递dbref = True来取消引用它。

posts = mongo.ListField(mongo.ReferenceField(Post, dbref=True))