I have the following query List<String>? rackQuery = [
Query.equal("facility_fk", document_id),
Query.equal("rack_fk", absolutePosition),
]; According to the docs, this is an OR query. What is the exact syntax for an AND query? Also, if I understand correctly, both attributes must part of a combined index.
Hey there 👋 WHat you provided is AND query. In SQL world, this would look like facility_fk = document_id AND rack_fk =absolutePosition.
This is how you achieve OR queries:
List<String>? rackQuery = [
Query.equal("facility_fk", [docId1, docId2, docId3]),
];
it would result in facility_fk = docId1 OR facility_fk = docId2 OR facility_fk = docId3.
Doing OR between multiple keys is not possible at the moment. I have seen people solving this by introducing a new attribute that is only used for querying.
For example, let's say I want a feature of "verified" articles.. And I want to query only verified articles. Let's say an article is considered verified if the length is > 1500 chars, or if it has at least 5 tags..
How I would recommend to do it is to introduce new attribute called verified and every time a document is created/updated, I would do the check client-side (or server-side with Appwrite Functions and events). In the check I would look at length and tags. Based on that, I set verified to true or false.
Later, to query only verified ones, I would do [ Query.equal("verified", true) ].
Makes sense?
Recommended threads
- Error | general_unknown
I have built a website using Appwrite Cloud as backend, and also using sites for deployment. My website is live but sometimes it shows Appwrite's Error general_...
- Introducing new string column types made...
Adding new string types is hugely bennificial! Unfortunately it made the current column types not editable to change their types to the new longer field types.
- there is critical problem in this part
when user update the integer and double both get error not update or upload