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
- Imagine studio showing error
I know that imagine will be going down by next month. So I was trying to export the project yesterday, but that didn't work. Today I tried logging in again but ...
- RowList: The value of total is coming as...
RowList: The value of total is coming as a String, so it throws an error because itβs not parsed into an int. Error: TypeError: \"37\": type 'String' is not a ...
- 408 Timeout / Curl Error 7 in Executor w...
Hey everyone, I am losing my mind over a routing loop/timeout issue on a fresh self-hosted setup. I have a single Linux VPS (IP: 45.141.37.105) and one domain (...