我有一个问题,查询集oid在json中检索,我想检索我在下面的User集合的实际用户名:
class User(db.Document):
username = db.StringField(required=True)
password_hash = db.StringField()
is_admin = db.IntField(default=0)
class Message(db.EmbeddedDocument):
to_users = db.ListField(db.ReferenceField(User))
created_at = db.DateTimeField(default=datetime.now)
is_read = db.BooleanField(default=False)
body = db.StringField(required=True)
class Inbox(db.Document):
from_user = db.ReferenceField(User, required=True)
subject = db.StringField(max_length=255, required=True)
created_at = db.DateTimeField(default=datetime.now)
messages = db.ListField(db.EmbeddedDocumentField(Message))
username = User().get_username()
username = User.objects(username=username).first()
inbox = Inbox.objects.filter(messages__to_users__in=[username]).only('from_user', 'subject', 'created_at').to_json()
Run Code Online (Sandbox Code Playgroud)
这就是我得到的结果:
[{"created_at": {"$date": 1401593024844}, "from_user": {"$oid": "538ad45fb43fdd69076d3e64"}, "subject": "test"}]
Run Code Online (Sandbox Code Playgroud)
有这样的事情会很高兴:
[{"created_at": {"$date": 1401593024844}, "from_user": {"username": "holms"}, "subject": "test"}]
Run Code Online (Sandbox Code Playgroud)
或者某种类似的相似 "from_user" : {"User": {"username":"holms"}}
UPDATE
上面的答案适用于Document中的ReferenceField,但是EmbeddedDocument引用呢?假设我只将"消息"添加到()? …