3

我正在使用 Google-Appengine-NDB。我试图从数据库中获取不同的值,但它不起作用。

现在我的代码是:
  query_set = cls.query().order(cls.ls) # 获取有序查询。
  set_of_field = set([data.field for data in query_set]) # 并使用这个循环来区分。`

但是循环花费的时间太长(超过 12 秒)。请帮助我,我怎样才能加快速度,或者如何从 ndb 获得不同的值?

4

1 回答 1

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]

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

于 2013-08-30T02:37:04.970 回答