对于我们的游戏,我们每个玩家存储一行&完成后,我们按以下方式执行:
pl = PlayerLevel.all().filter('player_id =', player_id).filter('level_id =', level_id ).get()
if not pl:
pl = PlayerLevel()
pl.level_id = level_id
pl.player_id = player_id
...
...else update stuff..
pl.put()
但是出于某种原因,这段代码已经创建了两行,其中包含相同的player_id& level_id。事情是我们之前也见过这个。
任何人都知道发生了什么?
答案 0 :(得分:1)
这是因为最终的一致性,在整个App Engine文档中都是fully documented。如果查询没有祖先,无法依赖查询(例如filter
调用)来返回最新数据。