python - 通过比较两个文档的字段值来定义 Firestore 查询
问题描述
我正在使用 Cloud Firestore 迈出第一步,但我被困在了这一步。我正在寻找一个 where 查询来返回我>=
的极限值。
[{
'limit': 100,
'value': 200
},
{
'limit': 50,
'value: 50,
},
{
'limit': 95,
'value': 90,
}]
我在 Cloud Function 中使用 Firebase Admin Python SDK。
有什么提示吗?
解决方案
正如 Alex 所解释的,在使用 Firestore 执行查询时,无法比较两个文档的字段值。
一种可能的方法是在将文档保存到数据库时保存不等式的结果。如果,当您保存“检查”文档时,您知道两个值 (limit
和value
),您可以添加第三个字段,例如,valueAboveLimit
其值为True
or False
,您在保存“检查”文档时计算(即来自使用相应客户端 SDK 的前端或使用 Firebase Admin Python SDK 的服务器,具体取决于您编写 Firestore 文档的方式)。
那么您的查询将很容易:
database = firestore.client()
col_checks = database.collection('checks')
query_checks = col_checks.where('valueAboveLimit', '==', True)
results = query_checks.get()
如果您在保存 Firestore文档时没有limit
和存在,计算并保存该字段。value
limit
valueAboveLimit
推荐阅读
- python - NumPy 数组转换
- .net - 如何找到泛型参数的 TypeSpec
- java - 返回给定数字 n 中有多少个数字是 7
- tensorflow - 为谷歌云导出 keras 模型时为 estimator.export_saved_model 添加标签
- c# - 从另一个类设置单选按钮属性
- oracle - Flyway 未报告相关的 Oracle 错误
- javascript - 如何使用js自动关闭警报?
- hyperledger-fabric - “无法将所有对等方加入通道。原因:错误:返回无效结果 ::FORBIDDEN”
- javascript - Popmotion:弹跳效果
- javascript - 如何从具有不同键的对象中提取 2 个值