python - 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 子句它正在工作,那么有人可以解释我为什么不工作吗?
解决方案
无法使用 Firestore 进行此类调用。这更类似于在返回数据之前运行一些操作的 SQL 语句。
对于您在此处尝试执行的操作类型,您最好在客户端执行此操作,或者在最初添加数据时将指标与数据一起存储。
我会添加一个您可以调用的布尔标记(例如,全部来自blanklabelcom_persons where shouldBeProcessed == true,并在更新后将其更新为false,等等。
推荐阅读
- java - 如何使用@NotNull 返回 400 http 状态码?
- vue.js - 使用有什么好处
结束了? - python - 如何使用 Python 创建嵌套的 JSON 对象?
- python - 在 ElasticSerch 中执行“事务”
- c++ - 如何在 Qt C++ 中向自定义控件添加属性?
- php - 如何修改从市场安装的模块?
- python - 如何迭代数据框中的日期?
- ruby - 使用标准库 Ruby 标记数据以发送到 Elasticsearch 批量
- html - Angular:如果没有硬重新加载,Paypal 按钮不会出现两次
- javascript - 何时将文件命名为 JS 或 JSP?