IDBObjectStore: phương thức getAllRecords()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Phương thức getAllRecords() của giao diện IDBObjectStore truy xuất tất cả bản ghi (bao gồm khóa chính và giá trị) từ object store.

getAllRecords() kết hợp hiệu quả chức năng của getAllKeys()getAll() bằng cách liệt kê đồng thời cả khóa chính và giá trị. Thao tác kết hợp này cho phép một số mẫu truy xuất dữ liệu đạt tốc độ nhanh hơn đáng kể so với các phương án thay thế như lặp bằng con trỏ.

Cú pháp

js
getAllRecords()
getAllRecords(options)

Tham số

Một đối tượng options có các thuộc tính có thể bao gồm:

query Optional

Một khóa hoặc một IDBKeyRange xác định các bản ghi cần truy xuất. Nếu giá trị này là null hoặc không được chỉ định, trình duyệt sẽ sử dụng một phạm vi khóa không giới hạn.

count Optional

Số lượng bản ghi cần trả về. Nếu giá trị này vượt quá số lượng bản ghi trong truy vấn, trình duyệt sẽ chỉ truy xuất các bản ghi đã truy vấn. Nếu giá trị nhỏ hơn 0 hoặc lớn hơn 2^32 - 1, một ngoại lệ TypeError sẽ được ném.

direction Optional

Một giá trị liệt kê chỉ định hướng mà các bản ghi được duyệt qua, từ đó xác định thứ tự chúng được trả về. Các giá trị có thể là:

next

Các bản ghi được duyệt từ đầu, theo thứ tự khóa tăng dần. Đây là giá trị mặc định.

nextunique

Các bản ghi đượ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 bản ghi như next, vì các khóa trùng lặp không được phép trong IDBObjectStore.

prev

Các bản ghi được duyệt từ cuối, theo thứ tự khóa giảm dần.

prevunique

Các bản ghi đượ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 bản ghi như prev, vì các khóa trùng lặp không được phép trong IDBObjectStore.

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 mảng các đối tượng đại diện cho tất cả bản ghi khớp với truy vấn đã cho, tối đa bằng số lượng được chỉ định bởi count (nếu được cung cấp).

Mỗi đối tượng chứa các thuộc tính sau:

key

Một giá trị đại diện cho khóa của bản ghi.

primaryKey

Khóa của bản ghi; giống hệt thuộc tính key.

value

Một giá trị đại diện cho giá trị của bản ghi.

Ngoại lệ

Phương thức này có thể gây ra một DOMException thuộc các loại sau:

InvalidStateError DOMException

Được ném nếu IDBObjectStore đã bị xóa hoặc loại bỏ.

TransactionInactiveError DOMException

Được ném nếu giao dịch của IDBObjectStore này không hoạt động.

TypeError DOMException

Được ném nếu tham số count không nằm trong khoảng từ 0 đến 2^32 - 1, bao gồm cả hai đầu mút.

Ví dụ

js
const query = IDBKeyRange.lowerBound("myKey", true);
const objectStore = transaction.objectStore("contactsList");

const myRecords = (objectStore.getAllRecords({
  query,
  count: "100",
  direction: "prev",
}).onsuccess = (event) => {
  console.log("Records successfully retrieved");
});

Đặc tả kỹ thuật

Specification
Indexed Database API 3.0
# dom-idbobjectstore-getallrecords

Tương thích trình duyệt

Xem thêm