Python 在GQL(谷歌应用程序引擎)上获取4个不重复的最新结果
您好,我的GAE应用程序中有: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
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)在唯一属性上运行一个实体的查询