Einführung:
Suche nach Entitäten, bei denen das Namensfeld beginnt mit einer bestimmten Zeichenfolge ist eine häufige Anforderung bei der Datenabfrage. Google App Engine Datastore bietet eine Möglichkeit, dies zu erreichen, ist jedoch möglicherweise nicht sofort ersichtlich. In diesem Artikel wird gezeigt, wie solche Abfragen erstellt werden, und es werden alternative Lösungen in anderen App Engine-Diensten untersucht.
Problemstellung:
„Ich habe versucht, Orte abzurufen, deren Name beginnt mit einer bestimmten Zeichenfolge mithilfe einer Filterabfrage, aber es funktioniert nicht. Wird diese Funktionalität in Datastore unterstützt, und wenn nicht, welche möglichen Problemumgehungen gibt es?“
Abfragekonstruktion:
Die Intuition hinter einer Präfixabfrage besteht darin, nach Entitäten zu filtern, deren Name größer als die Präfixzeichenfolge ist. Die Verwendung nur eines Ungleichheitsfilters (z. B. Name > „a“) schlägt jedoch fehl, da alle Entitäten ausgeschlossen werden, deren Namen mit dem Präfix beginnen.
Die Lösung liegt in der Kombination zweier Ungleichheitsfilter. Wir müssen angeben, dass der Name sowohl größer oder gleich der Präfixzeichenfolge als auch kleiner als die nächste lexikografische Zeichenfolge ist.
Beispielabfrage:
Lassen Sie uns Orte abrufen Beginnen Sie mit „li“:
q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")
Erklärung:
Alternative Lösungen:
Wenn dieser Ansatz bestimmte Anforderungen nicht erfüllt, bietet App Engine andere Dienste für erweiterte Abfragen an:
Das obige ist der detaillierte Inhalt vonWie finde ich Zeichenfolgen mit Präfixen im App Engine-Datenspeicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!