Heim >Backend-Entwicklung >Golang >Ist es möglich, Entitäten mit Präfix-übereinstimmenden Namen im App Engine-Datenspeicher abzufragen?

Ist es möglich, Entitäten mit Präfix-übereinstimmenden Namen im App Engine-Datenspeicher abzufragen?

DDD
DDDOriginal
2024-10-24 07:08:021051Durchsuche

Is it Possible to Query for Entities with Prefix-Matched Names in App Engine Datastore?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn