Ich habe ein paar hundert Schlüssel, alle vom gleichen Modell, die ich im Voraus berechnet habe:
candidate_keys = [db.Key(...), db.Key(...), db.Key(...), ...]
Einige dieser Schlüssel beziehen sich auf tatsächliche Entitäten im Datenspeicher, andere nicht. Ich möchte herausfinden, welche Schlüssel den Entitäten entsprechen.
Es ist nicht notwendig, die Daten innerhalb der Entitäten zu kennen, sondern nur, ob sie existieren.
Eine Lösung wäre die Verwendung von db.get():
keys_with_entities = set()
for entity in db.get(candidate_keys):
if entity:
keys_with_entities.add(entity.key())
Dieses Verfahren würde jedoch alle Entitätsdaten aus dem Speicher abrufen, was unnötig und kostspielig ist.
Eine zweite Idee ist die Verwendung einer Abfrage mit einer IN
anfiltern key_name
manuell in 30er-Paketen abrufen, um den Anforderungen der IN
Pseudo-Filter. Reine Schlüsselabfragen sind jedoch mit dem IN
Filter.
Gibt es einen besseren Weg?