Normal Output:
"questions": {
"total": 2,
"documents": [
{
"order": 1,
"$id": "quiz_question_1",
"questionId": {
"$id": "question_1",
"$databaseId": "...",
"$collectionId": "..."
}
},
{
"order": 2,
"$id": "quiz_question_2",
"questionId": {
"$id": "question_2",
"$databaseId": "...",
"$collectionId": "..."
}
}
]
}
but if i do
Query.select(["question", "order"]);
it throws an error
AppwriteException: Cannot select attributes: questionId
code: 400,
type: 'general_query_invalid',
response: {
message: 'Cannot select attributes: questionId',
code: 400,
type: 'general_query_invalid',
version: '1.6.0'
}
sorry for typo: the query was
Query.select(["questionId", "order"]);
The issue seems to arise from attempting to select nested attributes, such as questionId
Since Query.select isn't able to handle nested attributes directly,
You can work around this by fetching the entire document and then extracting the specific fields you need in your application logic.
const response = await database.listDocuments("<DATABASE_ID>", "<COLLECTION_ID>");
const documents = response.documents.map(doc => ({
order: doc.order,
questionId: doc.questionId
}));
console.log(documents);
This way, you get all the necessary data and then filter out the required attributes.
thank you @Guri
Recommended threads
- SELF HOSTING ISSUE, DATA NOT MIGRATING T...
Hey, devs, I recently tried to migrate my cloud instance to a self hosted version but my data is not transferred fully only the table structure is transferred ...
- No Document ID?
Hi I have a self hosted appwrite. My documents get a document ID but are not visible in the console. I don't know why this happens and how to fix this
- ACTIVATE DEPLOYMENT PROBLEM...
It's not giving me the option to activate a deployment that says it's ready..