I'm having my first steps with Cloud Firestore, and I am stuck on this one.
I'm looking for a where query to return me values that are >= the limit.
[{
'limit': 100,
'value': 200
},
{
'limit': 50,
'value: 50,
},
{
'limit': 95,
'value': 90,
}]
I am using the Firebase Admin Python SDK in a Cloud Function.
Any hints?
As Alex has explained, there is no way to compare two document's fields values when executing a query with Firestore.
One possible approach, would be to save the result of the inequality when you save the document to the database. If, when you save a "check" document you know the two values (limit and value), you could add a third field named, for instance,valueAboveLimit with a value of True or False, that you calculate when you save the "check" document (i.e. from your front-end with the corresponding client SDK or from a server with the Firebase Admin Python SDK, depending on how you write the Firestore documents).
Then your query will be easy:
database = firestore.client()
col_checks = database.collection('checks')
query_checks = col_checks.where('valueAboveLimit', '==', True)
results = query_checks.get()
In case you don't have the values of limit and value at the time you save the Firestore document (for example the limit field is written later), you could use a Cloud Function that is triggered when the Firestore document is changed and, if the two fields are present, calculates and saves this valueAboveLimit field.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With