Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AppEngine Python获取所有引用_Python_Google App Engine_Google Cloud Datastore - Fatal编程技术网

AppEngine Python获取所有引用

AppEngine Python获取所有引用,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我的问题很简单。我有A型和B型: class Lobby(db.Model): name = db.StringProperty() class UserModel(db.Model): name = db.StringProperty() lobby = db.ReferenceProperty(Lobby, collection_name="lobby") 现在,我从存储中获取/alllobble实体,并希望访问每个lobble的相关用户。我不能通过调用lob

我的问题很简单。我有
A型
B型

class Lobby(db.Model):
    name = db.StringProperty()  

class UserModel(db.Model):
    name = db.StringProperty()
    lobby = db.ReferenceProperty(Lobby, collection_name="lobby")
现在,我从存储中获取/all
lobble
实体,并希望访问每个lobble的相关用户。我不能通过调用
lobby\u entity.aUsers来实现这一点

这是如何实现的?

使用GQL:

lobbies = Lobby.all().fetch(10)
keys = [lobby.key() for lobby in lobbies]
q = aUser.gql('WHERE lobby IN :1', keys)
users = q.fetch(1000)
请注意,如果你有很多游说团体,这项工作就不太好;IN查询最多只支持30个值。(https://developers.google.com/appengine/docs/python/datastore/gqlreference)


请不要以小写字母开头模型类名。查看PEP 8。

我可能会有30多个大厅。那么最好的办法是对信息进行非规范化,并在每个大厅的KeyListProperty中记录用户列表。当用户签入或签出大厅时更新此信息。这应该适用于每个大厅数百名用户,并且不受大厅数量的限制。新的XG事务可能有助于实现这种事务性。