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

Get data of Referenced objects in MongoEngine query, not just id

我有一组模型如下:

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'
         }
     ]
 }

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

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