我正在迈出使用 Cloud Firestore 的第一步,但我被困在了这一步上。
我正在寻找一个 where 查询来返回 >=
限制的值。
[{
'limit': 100,
'value': 200
},
{
'limit': 50,
'value: 50,
},
{
'limit': 95,
'value': 90,
}]
我在 Cloud Functions 中使用 Firebase Admin Python SDK。
有什么提示吗?
最佳答案
正如 Alex 所解释的,在使用 Firestore 执行查询时,无法比较两个文档的字段值。
一种可能的方法是在将文档保存到数据库时保存不等式的结果。如果在保存“支票”文档时知道两个值(limit
和 value
),则可以添加第三个字段,例如 valueAboveLimit
的值为 True
或 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
字段稍后写入),您可以使用触发的 Cloud Function when the Firestore document is changed并且,如果存在这两个字段,则计算并保存此 valueAboveLimit
字段。
关于python - 通过比较两个文档的字段值来定义 Firestore 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58268838/