首页 > 解决方案 > firestore python API中的Where子句不适用于日期刻度格式

问题描述

我正在使用 Python 中的 API 使用 Cloud Firestore。我需要创建一个where子句来提取一些满足您的帐户处理日期小于更新日期的条件的用户。

这些日期的问题在于它们是刻度格式:

'last_processed': 637053568312425740,
'last_updated': 637053568312425740,

似乎它们是整数,所以我应该能够进行简单的比较,只取满足这个条件的值,但它不起作用,这是我到目前为止所做的:

persons = 
db.collection(u'collections').where(u'last_processed', u'<', 
u'last_updated')
person_docs = persons.stream()
for person_doc in person_docs:
    print(u'{} => {}'.format(person_doc.id, person_doc.to_dict()))

我可以在没有这个 where 子句的情况下提取此表中的所有内容,并且如果我对表中的其他变量应用不同的 where 子句它正在工作,那么有人可以解释我为什么不工作吗?

标签: pythongoogle-cloud-firestore

解决方案


无法使用 Firestore 进行此类调用。这更类似于在返回数据之前运行一些操作的 SQL 语句。

对于您在此处尝试执行的操作类型,您最好在客户端执行此操作,或者在最初添加数据时将指标与数据一起存储。

我会添加一个您可以调用的布尔标记(例如,全部来自blanklabelcom_persons where shouldBeProcessed == true,并在更新后将其更新为false,等等。


推荐阅读