Appwrite-Abfragen: select, notEqual, countDocuments und Nachbau dazu
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8c1055e8a0
commit
2dd9c0dec7
3 files changed
+190
-7
No files matched your search
@@ -91,6 +91,14 @@ export const Query = {
|
||||
cursorAfter: (documentId) => ({ method: 'cursorAfter', values: [documentId] }),
|
||||
orderDesc: (attribute) => ({ method: 'orderDesc', attribute }),
|
||||
orderAsc: (attribute) => ({ method: 'orderAsc', attribute }),
|
||||
/** Nur diese Felder zurueckgeben (die $-Felder wie $id liefert Appwrite immer mit) */
|
||||
select: (attributes) => ({ method: 'select', values: attributes }),
|
||||
/** Ein Wert oder eine Liste: kein Dokument mit einem der Werte ("keiner von") */
|
||||
notEqual: (attribute, value) => ({
|
||||
method: 'notEqual',
|
||||
attribute,
|
||||
values: Array.isArray(value) ? value : [value],
|
||||
}),
|
||||
}
|
||||
|
||||
export const ID = {
|
||||
@@ -169,6 +177,15 @@ export async function listDocuments(collectionId, queries = []) {
|
||||
return result.documents
|
||||
}
|
||||
|
||||
/**
|
||||
* Anzahl der Treffer: ein Aufruf mit limit(1), gelesen wird das Feld total der Antwort (Treffer ohne limit/cursor).
|
||||
* queries sind nur Filter, nie limit/order/cursor. Liefert null, wenn die Antwort kein total hat.
|
||||
*/
|
||||
export async function countDocuments(collectionId, queries = []) {
|
||||
const result = await adminFetch(collectionPath(collectionId), { queries: [...queries, Query.limit(1)] })
|
||||
return typeof result?.total === 'number' ? result.total : null
|
||||
}
|
||||
|
||||
/**
|
||||
* Ein Aufruf mit allen Seiten: sortiert nach $id, Seite fuer Seite per cursorAfter, bis eine Seite kuerzer als
|
||||
* pageSize ist. queries enthalten nur Filter, nie limit/order/cursor (die setzt die Funktion selbst). Mehr als max
|
||||
|
||||
Reference in new issue
Block a user