>  기사  >  백엔드 개발  >  Go를 사용하여 Google App Engine Datastore에서 \"IN 배열\" 쿼리를 실행하는 방법은 무엇입니까?

Go를 사용하여 Google App Engine Datastore에서 \"IN 배열\" 쿼리를 실행하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 02:52:02957검색

How to Execute

Go를 사용하여 Google App Engine Datastore에서 "IN 배열" 쿼리 실행

Datastore의 특정 속성에 대해 여러 값을 확인하는 "IN 배열" 쿼리 수행 , 이러한 유형의 쿼리에 대한 기본 지원이 부족하기 때문에 Go에서는 다른 접근 방식이 필요합니다.

1. 순차 쿼리

한 가지 옵션은 필터링하려는 배열의 각 요소에 대해 별도의 쿼리를 실행하는 것입니다. 예:

<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>

2. 연속 범위(연속 배열에만 해당)

배열의 요소가 연속 범위를 형성하는 경우 >= 및 <= 연산자를 사용하여 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.