我有一个GAE应用程序,可以在ndb中存储数千个问题,然后随机检索一些并将它们作为测试呈现给用户
问题: - 我需要以随机顺序查询问题,以确保问题与测试不同 - GAE ndb查询似乎不接受RAND()操作,所以相反,我获取所有问题,随机返回列表,拼接并返回结果
问题:即使用户只需要10个问题,所有符合条件的问题都将被提取(可能是数千个),这意味着我将快速退出免费配额
有什么想法吗?
答案 0 :(得分:0)
一种解决方案是使用显式顺序整数ID存储每个问题。
要随机选择问题,请生成0到当前问题数之间的数字列表,然后致电ndb.get_multi
以获取问题。
每次插入新问题时,棘手的部分是递增计数器,没有孔。 sharded counter tutorial可能会有所帮助。