我正在使用Google-Appengine-NDB。我试图从数据库中获取不同的值,但它不起作用。
Now my code is: query_set = cls.query().order(cls.ls) # Getting ordered queries. set_of_field = set([data.field for data in query_set]) # And using this loop for differ.`
但循环时间太长(超过12秒)。 请帮助我,如何加速,或如何从ndb获取不同的值?
答案 0 :(得分:4)
尝试使用不同的查询, 如果你的字段被编入索引,你可以使用: https://developers.google.com/appengine/docs/python/ndb/queries#projection
query_set = cls.query(projection=["field"], distinct=True)
set_of_field = [data.field for data in query_set]
但是如果你有一个巨大的列表,你可以在任务队列中执行此操作并将结果存储在某个地方,或者只是在另一个模型中保留不同的数据。