Heim >Backend-Entwicklung >Golang >Ist es möglich, Entitäten mit Präfix-übereinstimmenden Namen im App Engine-Datenspeicher abzufragen?
Entitäten mit vorangestellten Namen im Google App Engine-Datenspeicher suchen
Frage:
Ist es das? Ist es möglich, Entitäten aus dem Datenspeicher abzurufen, bei denen ein bestimmtes Feld mit einer bestimmten Zeichenfolge beginnt? Obwohl ich die folgende Abfrage versucht habe, kann ich nicht die gewünschten Ergebnisse erhalten:
q = datastore.NewQuery("Places").Filter("Name >", "a")
Antwort:
Das Abfragen von Entitäten basierend auf einem Feldpräfix wird in Datastore tatsächlich unterstützt , aber es erfordert die Verbindung zweier Ungleichheitsfilter.
Um beispielsweise Orte abzurufen, deren Namen mit „li“ beginnen, sollte die Abfrage angeben, dass das Feld „Name“ größer als (oder gleich) „li“ ist. und kleiner als „lj.“ Dies liegt daran, dass „lj“ das lexikografisch nachfolgende Präfix ist.
In GQL würde diese Abfrage wie folgt aussehen:
SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'
Im Go-Code hat die Abfrage die Form:
q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")
Diese Abfrage ergibt Orte mit Namen wie:
liam lisotto lizst
Es werden jedoch Namen wie folgt ausgeschlossen:
abc ljoi lj qwerty
Beachten Sie, dass Groß- und Kleinbuchstaben unterschiedliche lexikografische Eigenschaften haben Bestellungen. Daher steht „List“ vor „li“, während „list“ nach „li“ folgt.
Das obige ist der detaillierte Inhalt vonIst es möglich, Entitäten mit Präfix-übereinstimmenden Namen im App Engine-Datenspeicher abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!