Heim > Artikel > Backend-Entwicklung > Hier sind einige Titeloptionen, die das Q&A-Format mit einem Fokus auf das Problem und die Lösung kombinieren: Direkt und prägnant: * Wie frage ich nach ID-Array im Google App Engine Datastore (Go) ab? * Datenspeicher Q
Verwenden von „IN-Array“-Abfragen im Google App Engine-Datenspeicher mit Go
Abfragen nach ID-Array
F: Wie kann ich eine Abfrage im Datenspeicher durchführen, die ein Array von IDs enthält?
A: Der Datenspeicher unterstützt nativ keine „IN“-Abfragen.
Mehrere Abfragen
Eine Problemumgehung besteht darin, separate Abfragen für jedes Element im ID-Array auszuführen. Wenn sich die IDs in einem kontinuierlichen Bereich befinden, können Sie alternativ die Operatoren „>=" und „<=" verwenden:
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category").Filter("Id>=", 1).Filter("Id<=", 4)</p> <p><strong>GetMulti</strong></p> <p> Für Abfragen der Entitätsschlüsseleigenschaft können Sie die Funktion datastore.GetMulti() verwenden:</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>
Filterverhalten
Beachten Sie, dass mehrere Query.Filter() Aufrufe führen zu einer UND-Verknüpfung zwischen Filtern. Dies kann zu unerwarteten Ergebnissen führen, wenn Sie eine ODER-Verbindung erwarten. Stellen Sie sicher, dass Sie die zurückgegebene Abfrage speichern und als Grundlage für nachfolgende Filter verwenden:
<code class="go">q := q.Filter("Id=", id)</code>
Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die das Q&A-Format mit einem Fokus auf das Problem und die Lösung kombinieren: Direkt und prägnant: * Wie frage ich nach ID-Array im Google App Engine Datastore (Go) ab? * Datenspeicher Q. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!