Google App Engine を使用して Web ゲームを構築しています。ゲームにはユーザーが作成したレベルのリストが保存されており (これは多くの場合があり、動的に増加することもあります)、各ユーザーは既にプレイしたレベルのリストを持っています。以前にプレイしたことのないユーザーのレベルをランダムに選択する必要があります。エンティティは次のようにモデル化されます。
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
。これを行う最も効率的な方法は何でしょうか?