Wie führe ich mit Go „IN'-Abfragen mit ganzzahligen Slices im Google App Engine-Datenspeicher durch?

DDD
Freigeben: 2024-10-28 04:49:30
Original
510 Leute haben es durchsucht

How to Perform

IN-Array-Abfrage im Google App Engine-Datenspeicher mit Go

Im App Engine-Datenspeicher wird die Durchführung einer „IN“-Abfrage mit einem Teil von Ganzzahlen nicht direkt mit dem unterstützt Filterfunktion. Es können jedoch mehrere Ansätze verwendet werden, um eine ähnliche Funktionalität zu erreichen.

Ansatz 1: Abfrage mit mehreren Bedingungen

Eine Möglichkeit besteht darin, für jedes Element im Integer-Slice eine separate Abfrage zu erstellen. Dieser Ansatz eignet sich, wenn die Anzahl der Elemente relativ klein ist.

<code class="go">ids := []int64{1, 2, 3, 4}
var q datastore.Query
for _, id := range ids {
    q = q.Filter("Id =", id)
}</code>
Nach dem Login kopieren

Ansatz 2: Bereichsabfrage für kontinuierlichen Bereich

Wenn die Elemente im Integer-Slice einen kontinuierlichen Bereich darstellen, können Sie dies tun Verwenden Sie Bereichsoperatoren (>= und <=), um den IN-Filter zu ersetzen.

<code class="go">ids := []int64{1, 2, 3, 4}
q := datastore.NewQuery("Category").
    Filter("Id >=", 1).
    Filter("Id <=", 4)</p>
<h3>Ansatz 3: GetMulti für Schlüssel-IN-Abfrage</h3>
<p>Wenn die gefilterte Eigenschaft der Entitätsschlüssel ist , können Sie die Funktion datastore.GetMulti() verwenden, um mehrere Entitäten basierend auf einem Array von Schlüsseln abzurufen.</p>
<pre class="brush:php;toolbar:false"><code class="go">var keys []*datastore.Key
for _, id := range ids {
    keys = append(keys, datastore.NewKey(c, "Category", "", id, nil))
}
categories := make([]Category, len(keys))
err := datastore.GetMulti(c, keys, categories)</code>
Nach dem Login kopieren

Hinweis:

Der zweite Ansatz verwendet mehrere Filteraufrufe funktionieren nicht richtig. Die Anwendung mehrerer Filter auf diese Weise führt zu einer logischen UND-Verbindung, und keine Entitäten werden wahrscheinlich alle Bedingungen gleichzeitig erfüllen.

Das obige ist der detaillierte Inhalt vonWie führe ich mit Go „IN'-Abfragen mit ganzzahligen Slices im Google App Engine-Datenspeicher durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!