This there a way to limit the amount of documents in a collection?
I am trying to make a scheduling system. So I need when 20 people sign up to a date the box with disappear or gray out. And I was planning on doing that with collections and documents
I think your best option would be to create a function that will trigger each time someone is adding a document to a collection. Then when the number of documents reach to your limit let's say 20 then you should update the collection permission so no one will have permission to create any new documents.
You can run the collection update using the updateCollection function
https://appwrite.io/docs/server/databases?sdk=nodejs-default#databasesUpdateCollection
could I do a thing were I would list the documents everytime someone views the page. it checks the number of documents in a collection then changes it to grayed out if it is 20?
You can
But doing so will suffer from a few problems
- You calling all the documents each time, that can a burden on the server
- As long as your logic is only in the client side, then you won't be able to block it, so in regular use case your solution will work but if a user will send a request behind the scene then you won't be able to stop it.
Although you can mix this two approaches together, so blocking from the server side (function) and give the user feedback in the client side
I am doing both server and client side
How would you get the number of documents?
Best to keep a count, but in 1.3 you can set a high limit when making a list document API call
Recommended threads
- How to Display File in Web?
I'm trying to use Appwrite's Storage to store images and display them in my app, however when I use the `getFileView`, `getFileDownload` or `getFilePreview` met...
- Selfhosted Github App installation
I've followed this guide: https://appwrite.io/docs/advanced/self-hosting/configuration/version-control to connect GitHub to my self-hosted Appwrite instance (1....
- Project Paused Despite Daily Active Usag...
I noticed that my project was automatically **paused**, even though it is actively being used. The project is an **attendance application** that is used daily b...