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
- Unable to signup to appwrite cloud
When attempting to create an online cloud account on appwrite.io, I get the following message : "This email address must already be in its canonical form. Pleas...
- Email address must be in its canonical f...
Hello, Recently I was trying to signup with my GitHub account with appwrite account for availing the student benifits but while trying to signup I saw such erro...
- How to bypass the rate limit on the back...
Once a month my app has a ton of usage and I always run into the Too many requests 429 error. I am trying to optimize the queues and jobs to manage that, but a...