Datensätze zählen in GoogleApp Engine
-
- User
- Beiträge: 7
- Registriert: Montag 26. Januar 2009, 15:28
Ist es richtig, dass es bei App Engine's Datastore keine Möglichkeit gibt zu zählen, wieviele Datensätze eine GQL-Abfrage beinhaltet?!
Nun, du weisst ja, es sind maximal 1000. Daher würde ich mit `list(q)` (wenn `q` ein `GqlQuery`-Exemplar ist) einfach alles nehmen und die Länge der Liste prüfen. Oder du rufst `count()` auf. Beachte aber, dass dies eine neue Anfrage ist und es nicht sicher ist, dass du bei einer nachfolgenden Anfrage die selbe Anzahl an Objekten bekommst. Ein anderer Prozess könnte das ja zwischenzeitlich ändern. In beiden Fällen musst du sowieso mehrere Anfragen in einer Schleife stellen, um zu schauen, ob nach den ersten 1000 noch weitere 1000 kommen.
Am besten ist daher, die Länge explizit zu verwalten und bei dem neues Objekt hochzuzählen. Da so ein Zähler ein Nadelöhr und nicht parallelisierbar ist, sollte man bei Anwendungen, wo viel gezählt werden muss, spezielle parallelisierbare Zähler benutzen. Da gibt es irgendwo eine Doku zu.
Stefan
Am besten ist daher, die Länge explizit zu verwalten und bei dem neues Objekt hochzuzählen. Da so ein Zähler ein Nadelöhr und nicht parallelisierbar ist, sollte man bei Anwendungen, wo viel gezählt werden muss, spezielle parallelisierbare Zähler benutzen. Da gibt es irgendwo eine Doku zu.
Stefan