IDBObjectStore: phương thức getAllKeys()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Phương thức getAllKeys() của giao diện IDBObjectStore trả về một đối tượng IDBRequest truy xuất các khóa bản ghi cho tất cả đối tượng trong object store khớp với tham số được chỉ định hoặc tất cả đối tượng trong store nếu không cung cấp tham số.
Nếu một giá trị được tìm thấy thành công, thì một bản sao có cấu trúc của nó được tạo và đặt làm kết quả của đối tượng request.
Phương thức này tạo ra cùng kết quả cho:
- một bản ghi không tồn tại trong cơ sở dữ liệu
- một bản ghi có giá trị undefined
Để phân biệt các trường hợp này, bạn cần gọi phương thức openCursor() với cùng khóa. Phương thức đó cung cấp một con trỏ nếu bản ghi tồn tại, và không có con trỏ nếu nó không tồn tại.
Cú pháp
getAllKeys()
getAllKeys(query)
getAllKeys(query, count)
getAllKeys(options)
Tham số
Phương thức getAllKeys() có thể nhận các tham số riêng lẻ hoặc một đối tượng options duy nhất chứa các tham số làm thuộc tính.
Các tham số có thể bao gồm:
queryOptional-
Một giá trị là hoặc phân giải thành một
IDBKeyRange. Nếu giá trị này không được chỉ định, mặc định sẽ là một phạm vi khóa chọn tất cả bản ghi trong object store này. countOptional-
Chỉ định số lượng giá trị cần trả về nếu tìm thấy nhiều hơn một. Nếu nó nhỏ hơn
0hoặc lớn hơn2^32 - 1, một ngoại lệTypeErrorsẽ được ném.
Nếu một đối tượng parameter được chỉ định, các thuộc tính của nó có thể bao gồm:
queryOptional-
Xem định nghĩa
queryở trên. countOptional-
Xem định nghĩa
countở trên. directionOptional-
Một giá trị liệt kê chỉ định hướng mà các đối tượng được duyệt qua. Các giá trị có thể là:
next-
Các đối tượng được duyệt từ đầu, theo thứ tự khóa tăng dần. Đây là giá trị mặc định.
nextunique-
Các đối tượng được duyệt từ đầu, theo thứ tự khóa tăng dần. Điều này sẽ tạo ra cùng các khóa như
next, vì các khóa trùng lặp không được phép trongIDBObjectStore. prev-
Các đối tượng được duyệt từ cuối, theo thứ tự khóa giảm dần.
prevunique-
Các đối tượng được duyệt từ cuối, theo thứ tự khóa giảm dần. Điều này sẽ tạo ra cùng các khóa như
prev, vì các khóa trùng lặp không được phép trongIDBObjectStore.
Giá trị trả về
Một đối tượng IDBRequest mà các sự kiện tiếp theo liên quan đến thao tác này sẽ được kích hoạt trên đó.
Nếu thao tác thành công, giá trị của thuộc tính result của request là một Array chứa các khóa của tất cả bản ghi khớp với truy vấn đã cho, tối đa bằng giá trị của count, nếu count được cung cấp.
Ngoại lệ
Phương thức này có thể gây ra một DOMException thuộc một trong các loại sau:
TransactionInactiveErrorDOMException-
Được ném nếu giao dịch của
IDBObjectStorenày không hoạt động. DataErrorDOMException-
Được ném nếu khóa hoặc phạm vi khóa được cung cấp chứa một khóa không hợp lệ hoặc là null.
InvalidStateErrorDOMException-
Được ném nếu
IDBObjectStoređã bị xóa hoặc loại bỏ. TypeErrorDOMException-
Được ném nếu tham số
countkhông nằm trong khoảng từ0đến2^32 - 1, bao gồm cả hai đầu mút.
Đặc tả kỹ thuật
| Specification |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbobjectstore-getallkeys①> |
Tương thích trình duyệt
Xem thêm
- Sử dụng IndexedDB
- Bắt đầu giao dịch:
IDBDatabase - Sử dụng giao dịch:
IDBTransaction - Thiết lập phạm vi khóa:
IDBKeyRange - Truy xuất và thay đổi dữ liệu của bạn:
IDBObjectStore - Sử dụng con trỏ:
IDBCursor - Ví dụ tham khảo: To-do Notifications (Xem ví dụ trực tiếp).