Seite 1 von 1

Datensätze zählen in GoogleApp Engine

Verfasst: Mittwoch 28. Januar 2009, 19:54
von 0815pascal
Ist es richtig, dass es bei App Engine's Datastore keine Möglichkeit gibt zu zählen, wieviele Datensätze eine GQL-Abfrage beinhaltet?!

Verfasst: Freitag 30. Januar 2009, 08:57
von sma
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