我正在使用 Google App Engine 构建网页游戏。游戏有一个存储的用户创建的关卡列表(可能很多,并且还会动态增加),每个用户都有一个他已经玩过的关卡列表。我需要为他以前没有玩过的用户随机选择一个级别。实体建模如下:
class User(ndb.Model):
uid = ndb.StringProperty()
levels_played = ndb.KeyProperty(kind='Level', repeated=True)
class Level(ndb.Model):
#some stuff here
所以基本上我需要执行一个查询,给定 a uid
,选择一个不属于相应 list 的随机 Level levels_played
。最有效的方法是什么?