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
- All function deployments fail (node 18-2...
Error: bash: /usr/local/server/helpers/build-cache.sh: No such file or directory Sidecar error: Build archive was not created at /mnt/code/code.tar.gz Scope: ...
- Why does this happen?
`AppwriteException: general_argument_invalid, Invalid `secret` param: Value must be a valid string and at least 1 chars and no longer than 256 chars (400)` the...
- Database Write Limits hit
Hello Appwrite Admins, I'm a GitHub Education user, and about a week ago, my database was really badly optimized, resulting in about 600k writes in a single day...