Was Sie vorgeschlagen haben, wäre in der Tat der schnellste Weg zu wissen, ob Ihre Entität existiert. Die einzige Sache, die Sie verlangsamt, ist die Zeit, die benötigt wird, um Ihre Entität zu holen und zu deserialisieren. Wenn Ihre Entität groß ist, kann dies Sie verlangsamen.
Wenn diese Aktion (Existenzprüfung) für Sie ein großer Engpass ist und Sie große Entitäten haben, möchten Sie vielleicht Ihr eigenes System zur Überprüfung mit zwei Entitäten rollen - zuerst würden Sie Ihre vorhandene Entität mit Daten und eine zweite Entität, die entweder die Referenz auf die reale Entität speichert oder eine leere Entität, bei der der Schlüssel nur eine Variation des ursprünglichen Entitätsschlüssels ist, den Sie berechnen können. Sie können mit der zweiten Entität schnell auf Vorhandensein prüfen und dann die erste Entität nur dann holen, wenn die Daten erforderlich sind.
Der bessere Weg wäre meiner Meinung nach nur, Ihre Schlüssel so zu entwerfen, dass Sie wissen, dass es keine Duplikate geben wird, oder dass Ihre Operationen idempotent sind, so dass selbst eine alte Entität überschrieben würde.
Wenn eine Entität per Schlüssel abgerufen wird, wird nie ein Fehler zurückgegeben, es wird None zurückgegeben. – aschmid00
In Java löst 'get' eine Ausnahme aus, wenn die Entität nicht gefunden wurde: https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreService#get(com.google .appengine.api.datastore.Key) –
ok das wusste ich nicht. – aschmid00