Datastore의 특정 속성에 대해 여러 값을 확인하는 "IN 배열" 쿼리 수행 , 이러한 유형의 쿼리에 대한 기본 지원이 부족하기 때문에 Go에서는 다른 접근 방식이 필요합니다.
한 가지 옵션은 필터링하려는 배열의 각 요소에 대해 별도의 쿼리를 실행하는 것입니다. 예:
<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>
배열의 요소가 연속 범위를 형성하는 경우 >= 및 <= 연산자를 사용하여 "IN" 필터를 대체할 수 있습니다. 예를 들면 다음과 같습니다.
<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>필터링할 속성이 항목 키 자체인 경우 datastore.GetMulti() 함수를 사용하여 키 배열을 기반으로 항목 목록을 검색할 수 있습니다.</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>
참고: AND를 사용하는 복합 필터는 여러 필터가 논리적으로 적용되므로 예상치 못한 결과를 반환할 수 있다는 점을 기억하세요.
위 내용은 Go를 사용하여 Google App Engine Datastore에서 \'IN 배열\' 쿼리를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!