
In my appwrite application, I have a collection containing Stores
(with attributes like name
, address
,...), and then a different collection containing Products
(with attributes like name
, price
, owner_store_id
,...)
At some point I need to show all products of a given store and I have the following two options:
- Using listDocuments with a query that returns only the products having
owner_store_id
= the id of the wanted store (and in this case, I would also create an index on theProducts
collection for theowner_store_id
key - Storing the ids of the owned products in a
owned_products[]
attribute of theStores
collection (by adding them each time a new product is created) and then calling getDocument for each of the ids in theowned_products
array of the wanted store
Which one of the two ways would you say is better? I mean, if they are equivalent efficiency-wise I would go for the first one so I can avoid storing the owned_products array for each store, but are they actually equivalent? Or getting documents by index is still more efficient than getting them by query even if the query is on an indexed key?

server-side, getDocument() is faster because that goes to the cache rather than the database.
The trade-off, though is the multiple getDocument()
calls you'll need to make vs the one listDocuments()
call so... ⚖️

Oh ok I didn't thought about the impact of having to do multiple requests instead of a single one, thank you! I'll probably go fot the Query option then to avoid having to keep the same information duplicated in two different places of the database then
Recommended threads
- 2 Columns still processing since yesterd...
Hey o/ Yesterday (around <t:1758045600:f>), I created a database and added several columns to it. After about 15 minutes, most of the "processing" tags disappe...
- 503 Timeout when Updating or Upserting D...
Hey I’m running into an issue when trying to update or upsert a row in Appwrite. The request hangs for a while and then throws this error: ``` AppwriteException...
- Row with the requested ID already exists...
I’m hitting a blocking issue creating rows in Appwrite (both from the console and my React Native app). After successfully inserting the first row, every subseq...
