获得不同价值观的最佳方式

时间:2013-08-30 02:01:15

标签: google-app-engine app-engine-ndb

我正在使用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获取不同的值?

1 个答案:

答案 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]

但是如果你有一个巨大的列表,你可以在任务队列中执行此操作并将结果存储在某个地方,或者只是在另一个模型中保留不同的数据。