I'm implementing a like system in my app. So, the users can like a post posted by another user. Now, I'm storing the likes by creating a new collection with 2 attributes (userId and postId). The problem I'm facing is, how to know how many likes this post already has?
I looked up the docs to find a way to perform aggregation queries, but can't find any.
So, I thought of this solution, I will create an appwrite function which will be responsible for toggling the like on a post by a user. Whenever the user likes a post, I'm incrementing an integer totalLikes stored along with the post data.
For now, I'm doing this in an appwrite function, every time a user likes a post, I'm fetching the current likes count for that post, adding 1 to it, and then updating it back onto the database.
But, now again, I wasn't able to find a way to increment this variable atomically. Or is a race condition never going to happen, even for millions of users?
So, I have a couple of questions? 1. Does appwrite have support for aggregation queries? 2. In appwrite, is there any way to atomically increment values? I want something like this: update({ 'totalLikes': FieldValue.increment(1), }) 3. Is there any way to run transactions, just like in firebase?
@Steven Sorry for tagging but this is kinda urgent as this is affecting our development phase
If a certain user have reached the limit rate than how many hours or minutes the user have to wait to sign in again in cloud
Recommended threads
- Error When load the website
Hi, I am getting this error whenever I reload my website please help me, I am using react Error: ** GET https://cloud.appwrite.io/v1/account 401 (Unauthoriz...
- Migrate from cloud to localhost
Hello everyone. I need to migrate my test project from cloud to localhost, however it seems that this is possible only if a self-hosted appwrite instance it's h...
- Current User is Not authorized
recreating same Thread