Python 在GQL(谷歌应用程序引擎)上获取4个不重复的最新结果

Python 在GQL(谷歌应用程序引擎)上获取4个不重复的最新结果,python,google-app-engine,google-cloud-datastore,gql,Python,Google App Engine,Google Cloud Datastore,Gql,您好,我的GAE应用程序中有: try: last = RegistroDescargas.gql("order by date DESC LIMIT 4") except: last = None 有了它,我可以得到数据库的最后四行(“RegistroDescags”),其定义如下: class RegistroDescargas(db.Model): '''Model para guardar el registro de vídeos descargados en

您好,我的GAE应用程序中有:

try:
    last = RegistroDescargas.gql("order by date DESC LIMIT 4")
except:
    last = None
有了它,我可以得到数据库的最后四行(“RegistroDescags”),其定义如下:

class RegistroDescargas(db.Model):
    '''Model para guardar el registro de vídeos descargados en la web'''
    date = db.DateTimeProperty(auto_now_add=True)
    urlOrig = db.StringProperty(required=True)
    urlImg = db.StringProperty(required=True)
    vidTit = db.StringProperty(required=True)
    vidDesc = db.TextProperty()
但当然,如果一个或最后四个结果被重复,只会显示给我,我想要的是得到最后一个不重复的四行,我不知道我如何才能做到这一点

有什么建议吗?(我认为,如果最后这是可能的,可以用一个完全不同的句子,但我不介意;)


非常感谢你的帮助。。对不起,我的英语…

GQL不支持不同的查询。你能做的就是把结果放入一个集合,然后检查集合中有多少条记录。如果少于四条,则查询其他记录

这个答案更为深入:


否则,需要预先计算这种不同的列表。GAE遵循一个口号,即通过昂贵的写入来实现超快速读取。

DISTINCT关键字是在中引入的


您可以找到更新的GQL参考(例如Python)。

非常感谢您的回答。我将尝试将结果放入一个集合(我需要按日期排序的结果)。你给了我一个好主意,谢谢;)为了省钱,尝试以下模式:
a)获取最后四个结果;使用一个带有您想要唯一的键的集合b)结果<4 c)在唯一属性上运行一个实体的查询