我简化了我的一些课程,User和Post。用户可以拥有[0,多个]帖子。
class User(ndb.model)
name = ndb.StringProperty()
avatarUrl = ndb.StringProperty()
class Post(ndb.Model):
""" Model for storing user profile posts """
postType = ndb.StringProperty()
text = ndb.StringProperty()
userId = ndb.StringProperty() #referencing User key
createdAt = ndb.DateTimeProperty(auto_now_add=True)
我正在寻找一种方法:检索User x发布的所有Post对象。在单个查询中,是否有可能检索所有帖子对象及其各自用户的属性?
我现在拥有的伪代码: 1.发布查询,其中userId = x 2.对于每个返回的帖子,用户查询userId = post.userId 3.对于每个返回的帖子,union post属性和用户属性
这要求我对Post对象执行1次查询,对用户对象执行n次查询,我的python脚本正在进行n次合并。我知道有更好的方法。我探索在Post中使用ndb.KeyProperty而不是ndb.StringProperty(),但算法是相同的,似乎没有帮助。
最好的方法是什么?任何示例或文档的链接都会有所帮助。感谢