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
- restore paused project not working
https://cloud.appwrite.io/console/project-sfo-69b1b841002ca6a07f14/overview/platforms
- 1.6.2 to 1.7.0
Hi everyone. I am running a self-hosted Appwrite server on version 1.6.2. What is the safest way to migrate to the next version? Should I update directly to...
- Exception: Route not found when calling ...
I have self-hosted v1.8.1 and I am using an Appwrite function with node-appwrite v22. When I call the createVarcharColumn() in my server function I get this exc...