共用方式為


OFFSET LIMIT (NoSQL 查詢)

適用於:NoSQL

OFFSET LIMIT子句是選擇性子句,可略過,然後從查詢中取得一些值。 OFFSET OFFSET LIMIT 子句中需要計數和LIMIT計數。

搭配 子句使用ORDER BYOFFSET LIMIT,會執行skip並接受已排序的值來產生結果集。 如果未使用子 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 子句來略過第一個項目的查詢。 限制會設定為容器中的項目數目,以傳回所有可能的剩餘值。 在此範例中,查詢會略過一個專案,並傳回其餘個專案(超過五個限制)。

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 子句,則會藉由對排序的值執行跳過來產生結果集。 否則,查詢會傳回固定的值順序。
  • 查詢的 RU 費用隨著 OFFSET LIMIT 位移的字詞數目增加而增加。 如果查詢具有多頁結果,我們通常會建議使用接續權杖。 接續權杖是一種「書籤」,可供之後繼續進行查詢。 如果您使用 OFFSET LIMIT,則沒有 「bookmark」。如果您想要傳回查詢的下一頁,則必須從頭開始。
  • 若想完全跳過項目並儲存用戶端資源,應使用 OFFSET LIMIT。 例如,如果想要跳至第 1000 個查詢結果,而不需要查看第 1 到 999 個結果,則應使用 OFFSET LIMIT。 在後端, OFFSET LIMIT 仍會載入每個專案,包括略過的專案。 藉由避免處理不需要的專案,來測量效能優勢來減少客戶端資源。