Wenn Sie Datenmodelle in der App-Engine ändern, um neue Eigenschaften hinzuzufügen, werden diese Einträge ohne eine bestimmte Eigenschaft im Online-Datenviewer mit dem Wert <missing>
aufgelistet.
Ich frage mich, wie kann ich eine Abfrage schreiben, um diese Einträge zu finden?
Es gibt keine direkte Möglichkeit, nach älteren Entitäten mit fehlendem Attribut zu suchen, aber Sie können das Datenmodell im Voraus entwerfen, um dies zu unterstützen. Fügen Sie jeder Modellklasse ein Attribut version
hinzu. Die Version sollte einen Standardwert haben, der bei jeder Änderung und Bereitstellung der Modellklasse erhöht wird. Auf diese Weise können Sie Entitäten nach Versionsnummer abfragen.
Es gibt keine Möglichkeit, den Datenspeicher für Entitäten abzufragen, die keine bestimmte Eigenschaft besitzen. Sie müssen über alle Entitäten iterieren und diese überprüfen - möglicherweise mithilfe der MapReduce-API .
>Oder Sie könnten ein Skript erstellen, das für alle aktuellen Elemente, für die diese Eigenschaft nicht verwendet wird, null mit der Low-Level-Datenspeicher-API festlegt. Dann können Sie auf null abfragen.
Ich hatte dieses Problem und so habe ich es gelöst. Der grobe Code würde wie folgt aussehen:
%Vor%Tags und Links google-app-engine bigtable