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
- Fulltext index creation fails due to Inn...
I'm running a self-hosted Appwrite 1.8.1 instance and encountering an issue when creating fulltext indexes on a collection. **The Problem:** Fulltext index cre...
- Unable To Use Root Domain In Appwrite
Since Appwrite Manages my DNS Completely, I tried Pointing the Root Domain (**getmyself.app**) to Github Pages, It failed So I tried Using Appwrite Sites, also ...
- Report: fetch failed
https://github.com/appwrite/appwrite/issues/10989 please assign this issue to me