다음을 통해 공유


OFFSET LIMIT(NoSQL 쿼리)

적용 대상: NoSQL

OFFSET LIMIT 절은 쿼리에서 몇 개의 값을 건너뛰고사용하기 위한 선택적 절입니다. OFFSET LIMIT 절에는 OFFSET 개수와 LIMIT 개수가 필요합니다.

ORDER BY 절과 함께 OFFSET LIMIT가 사용되면 정렬된 값을 건너뛰고 사용하여 결과 집합이 생성됩니다. ORDER BY 절을 사용하지 않으면 결정적 값 순서로 생성됩니다.

구문

OFFSET <offset_amount> LIMIT <limit_amount>

인수

설명
<offset_amount> 쿼리 결과에서 건너뛰어야 하는 항목 수를 정수로 지정합니다.
<limit_amount> 쿼리 결과에 포함되어야 하는 항목 수를 정수로 지정합니다.

예제

이 섹션의 예제에서는 이 참조 항목 집합이 사용됩니다. 각 항목에는 name 속성이 포함됩니다.

[
  {
    "name": "Sawyer Miller",
    "team": "Leadership team"
  },
  {
    "name": "Jennifer Wilkins",
    "team": "Leadership team"
  },
  {
    "name": "Hannah Haynes",
    "team": "Leadership team"
  },
  {
    "name": "Isaac Talbot",
    "team": "Leadership team"
  },
  {
    "name": "Riley Johnson",
    "team": "Leadership team"
  }
]

참고 항목

원래 JSON 데이터에서 항목은 정렬되지 않습니다.

첫 번째 예제에는 사전순으로 정렬된 모든 항목의 name 속성만 반환하는 쿼리가 포함됩니다.

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
[
  {
    "name": "Hannah Haynes"
  },
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  },
  {
    "name": "Sawyer Miller"
  }
]

다음 예제에서는 절을 사용하여 OFFSET LIMIT 첫 번째 항목을 건너뛰는 쿼리를 포함합니다. 가능한 모든 나머지 값을 반환하려면 컨테이너의 항목 수로 제한됩니다. 이 예제에서 쿼리는 한 항목을 건너뛰고 나머지 4개(제한 5개 중)를 반환합니다.

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
OFFSET 1 LIMIT 5
[
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  },
  {
    "name": "Sawyer Miller"
  }
]

이 마지막 예제에서는 한 항목을 건너뛰고 다음 세 항목을 사용하여 일치하는 항목의 하위 집합을 반환하는 절을 사용하는 OFFSET LIMIT 쿼리를 포함합니다.

SELECT VALUE {
    name: e.name
}
FROM
    employees e
WHERE
    e.team = "Leadership team"
ORDER BY
    e.name
OFFSET 1 LIMIT 3
[
  {
    "name": "Isaac Talbot"
  },
  {
    "name": "Jennifer Wilkins"
  },
  {
    "name": "Riley Johnson"
  }
]

설명

  • OFFSET LIMIT 절에는 OFFSET 개수와 LIMIT 개수가 둘 다 필요합니다. 선택적 ORDER BY 절을 사용하면 정렬된 값을 건너뛰어 결과 집합이 생성됩니다. 그러지 않으면 쿼리가 고정된 값 순서대로 반환합니다.
  • 오프셋되는 용어 수가 증가함에 따라 OFFSET LIMIT를 사용하는 쿼리의 RU 요금도 증가합니다. 여러 페이지의 결과가 있는 쿼리의 경우 일반적으로 연속 토큰을 사용하는 것이 좋습니다. 연속 토큰은 나중에 쿼리가 다시 시작될 수 있는 위치의 “책갈피”입니다. OFFSET LIMIT를 사용하는 경우 "책갈피"가 없습니다.쿼리의 다음 페이지를 반환하려면 처음부터 시작해야 합니다.
  • 항목을 완전히 건너뛰고 클라이언트 리소스를 저장하려는 경우 OFFSET LIMIT를 사용해야 합니다. 예를 들어 1부터 999까지의 결과를 볼 필요가 없고 1000번째 쿼리 결과로 건너뛰려는 경우 OFFSET LIMIT를 사용해야 합니다. 백 엔드에서 OFFSET LIMIT는 건너뛴 항목을 포함하여 각 항목을 계속 로드합니다. 성능상의 이점은 불필요한 항목의 처리를 방지함으로써 클라이언트 리소스를 줄이는 데 있습니다.