Durchführen einer „IN Array“-Abfrage, bei der mehrere Werte für eine bestimmte Eigenschaft im Datenspeicher überprüft werden , erfordert einen anderen Ansatz in Go, da für diese Art von Abfrage keine native Unterstützung vorhanden ist.
Eine Möglichkeit besteht darin, separate Abfragen für jedes Element im Array auszuführen, nach dem Sie filtern möchten. Zum Beispiel:
<code class="go">ids := []int64{1, 2, 3, 4} for _, id := range ids { q := datastore.NewQuery("Category").Filter("Id =", id) // Execute the query and process the results for each element }</code>
Wenn die Elemente im Array einen kontinuierlichen Bereich bilden, können Sie den „IN“-Filter durch die Operatoren >= und <= ersetzen. Zum Beispiel:
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category").Filter("Id >=", 1).Filter("Id <=", 4)</p> <h3>3. datastore.GetMulti()</h3> <p>Wenn die Eigenschaft, nach der gefiltert werden soll, der Entitätsschlüssel selbst ist, können Sie mit der Funktion datastore.GetMulti() eine Liste von Entitäten basierend auf einem Array ihrer Schlüssel abrufen.</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) if err != nil { return nil, err }</code>
Hinweis: Denken Sie daran, dass zusammengesetzte Filter, die AND verwenden, unerwartete Ergebnisse liefern können, da mehrere Filter logisch als solche angewendet werden.
Das obige ist der detaillierte Inhalt vonWie führe ich mit Go „IN-Array'-Abfragen im Google App Engine-Datenspeicher aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!