How can use json type for attribute in collections?
you want to store json? then you can choose string and add maximum length. that is how I store json.
But when i want to add query to that stringfied json i need to get all data and then parse, but i want to get data from db with conditions not all data
as far as I know, you cannot query on json. appwrite uses SQL for storing collections. it is not pureplay noSQL db like mongo
So what i can do to implement this?
I am getting around this by creating an String attribute as an array with max length, before storing the data I use JSON.stringfy and convert the string to an array of strings with the max length. When I retrieve the data join the array of strings and parse it back to JSON. is a bit of a process š
if you're using js/ts here's the code for getting the array of strings to save it in appwrite db
export const splitJsonString = (
jsonString: string,
maxLength: number
): string[] => {
if (jsonString.length <= maxLength) {
return [jsonString];
}
const chunks: string[] = [];
let currentChunk = "";
for (const char of jsonString) {
// Check if adding the current character exceeds the maxLength
if (currentChunk.length + char.length <= maxLength) {
currentChunk += char;
} else {
// If adding the current character exceeds the maxLength, start a new chunk
chunks.push(currentChunk);
currentChunk = char;
}
}
// Push the last chunk if it is not empty
if (currentChunk.length > 0) {
chunks.push(currentChunk);
}
return chunks;
};
What exactly are you trying to store?
Recommended threads
- Why custom domain not working - verifi...
I have asked AI to suggest running terminal commands to check my current setup for the my custom domain - api.mydomainname.com - at Appwrite Cloud Here is the...
- Menu don't display options in Mobile
Hi guys I'm facing an issue on my mobile. I have attached a video for reference.
- Emails not coming
I'm building a simple web app that registers users with an email and password. The user is created successfully in my (auth) page, but the verification email is...