App Engine 데이터 저장소에서 정수 조각을 사용하여 "IN" 쿼리를 수행하는 것은 다음을 사용하여 직접 지원되지 않습니다. 필터 기능. 그러나 유사한 기능을 달성하기 위해 여러 가지 접근 방식을 사용할 수 있습니다.
한 가지 옵션은 정수 슬라이스의 각 요소에 대해 별도의 쿼리를 생성하는 것입니다. 이 접근 방식은 요소 수가 상대적으로 작은 경우에 적합합니다.
<code class="go">ids := []int64{1, 2, 3, 4} var q datastore.Query for _, id := range ids { q = q.Filter("Id =", id) }</code>
정수 슬라이스의 요소가 연속 범위를 나타내는 경우 다음을 수행할 수 있습니다. 범위 연산자(>= 및 <=)를 사용하여 IN 필터를 대체합니다.
<code class="go">ids := []int64{1, 2, 3, 4} q := datastore.NewQuery("Category"). Filter("Id >=", 1). Filter("Id <=", 4)</p> <h3>접근 방법 3: 키 IN 쿼리에 대한 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)</code>
참고:
여러 항목을 사용하는 두 번째 접근 방식 필터 호출이 제대로 작동하지 않습니다. 이러한 방식으로 여러 필터를 적용하면 논리적 AND 연결이 발생하며 모든 조건을 동시에 충족하는 엔터티가 없을 가능성이 높습니다.
위 내용은 Go를 사용하여 Google App Engine Datastore에서 정수 슬라이스로 \'IN\' 쿼리를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!