Udostępnij za pośrednictwem


LIMIT PRZESUNIĘCIA (zapytanie NoSQL)

DOTYCZY: NoSQL

Klauzula OFFSET LIMIT jest klauzulą opcjonalną do pominięcia , a następnie podjęcia pewnej liczby wartości z zapytania. Liczba OFFSET i LIMIT liczba są wymagane w klauzuli OFFSET LIMIT.

Gdy OFFSET LIMIT jest używany z klauzulą ORDER BY , zestaw wyników jest generowany przez pomijanie i przejmowanie uporządkowanych wartości. Jeśli nie ORDER BY jest używana żadna klauzula, powoduje to deterministyczną kolejność wartości.

Składnia

OFFSET <offset_amount> LIMIT <limit_amount>

Argumenty

opis
<offset_amount> Określa liczbę całkowitą elementów, które wyniki zapytania powinny pominąć.
<limit_amount> Określa liczbę całkowitą elementów, które powinny zawierać wyniki zapytania.

Przykłady

W przykładzie w tej sekcji jest używany ten zestaw odwołań elementów. Każdy element zawiera name właściwość.

[
  {
    "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"
  }
]

Uwaga

W oryginalnych danych JSON elementy nie są sortowane.

Pierwszy przykład zawiera zapytanie, które zwraca tylko name właściwość ze wszystkich elementów posortowanych w kolejności alfabetycznej.

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"
  }
]

W następnym przykładzie uwzględniono zapytanie używające klauzuli OFFSET LIMIT , aby pominąć pierwszy element. Limit jest ustawiony na liczbę elementów w kontenerze, aby zwrócić wszystkie możliwe wartości pozostałe. W tym przykładzie zapytanie pomija jeden element i zwraca pozostałe cztery (z limitu pięciu).

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"
  }
]

Ten ostatni przykład obejmuje zapytanie używające klauzuli , OFFSET LIMIT aby zwrócić podzbiór pasujących elementów, pomijając jeden element i wykonując następne trzy.

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"
  }
]

Uwagi

  • OFFSET Zarówno liczba, jak i LIMIT liczba są wymagane w klauzuli OFFSET LIMIT . Jeśli jest używana klauzula opcjonalna ORDER BY , zestaw wyników jest generowany przez pominięcie uporządkowanych wartości. W przeciwnym razie zapytanie zwraca stałą kolejność wartości.
  • Opłata za jednostkę RU zapytania zwiększa się wraz ze OFFSET LIMIT wzrostem liczby terminów przesunięcia. W przypadku zapytań, które mają wiele stron wyników, zwykle zalecamy używanie tokenów kontynuacji. Tokeny kontynuacji to "zakładka" dla miejsca, w którym zapytanie może być później wznowione. Jeśli używasz polecenia OFFSET LIMIT, nie ma "zakładki". Jeśli chcesz zwrócić następną stronę zapytania, musisz zacząć od początku.
  • Należy użyć OFFSET LIMIT w przypadku przypadków, w których chcesz całkowicie pominąć elementy i zapisać zasoby klienta. Na przykład należy użyć OFFSET LIMIT polecenia , jeśli chcesz przejść do 1000 wyników zapytania i nie ma potrzeby wyświetlania wyników od 1 do 999. Na zapleczu OFFSET LIMIT nadal ładuje każdy element, w tym te elementy, które są pomijane. Zaleta wydajności jest mierzona w zmniejszaniu zasobów klienta, unikając przetwarzania elementów, które nie są potrzebne.