IDBObjectStore

IDBObjectStore interface of the IndexedDB API represents an object store in a database. Records within an object store are sorted according to their keys. This sorting enables fast insertion, look-up, and ordered retrieval.

注意: 此特征可用于 Web 工作者 .

特性

IDBObjectStore.indexNames 只读
A list of the names of indexes on objects in this object store.
IDBObjectStore.keyPath 只读
key path of this object store. If this attribute is null , the application must provide a key for each modification operation.
IDBObjectStore.name
The name of this object store.
IDBObjectStore.transaction 只读
IDBTransaction object to which this object store belongs.
IDBObjectStore.autoIncrement 只读
The value of the auto increment flag for this object store.

方法

IDBObjectStore.add()
Returns an IDBRequest object, and, in a separate thread, creates a structured clone of the value , and stores the cloned value in the object store. This is for adding new records to an object store.
IDBObjectStore.clear()
Creates and immediately returns an IDBRequest object, and clears this object store in a separate thread. This is for deleting all current records out of an object store.
IDBObjectStore.count()
Returns an IDBRequest object, and, in a separate thread, returns the total number of records that match the provided key or IDBKeyRange . If no arguments are provided, it returns the total number of records in the store.
IDBObjectStore.createIndex()
Creates a new index during a version upgrade, returning a new IDBIndex object in the connected database.
IDBObjectStore.delete()
返回 IDBRequest object, and, in a separate thread, deletes the store object selected by the specified key. This is for deleting individual records out of an object store.
IDBObjectStore.deleteIndex()
Destroys the specified index in the connected database, used during a version upgrade.
IDBObjectStore.get()
Returns an IDBRequest object, and, in a separate thread, returns the store object store selected by the specified key. This is for retrieving specific records from an object store.
IDBObjectStore.getKey()
Returns an IDBRequest object, and, in a separate thread retrieves and returns the record key for the object in the object stored matching the specified parameter.
IDBObjectStore.getAll()
Returns an IDBRequest object retrieves all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.
IDBObjectStore.getAllKeys()
Returns an IDBRequest object retrieves record keys for all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.
IDBObjectStore.index()
Opens an index from this object store after which it can, for example, be used to return a sequence of records sorted by that index using a cursor.
IDBObjectStore.openCursor()
Returns an IDBRequest object, and, in a separate thread, returns a new IDBCursorWithValue object. Used for iterating through an object store by primary key with a cursor.
IDBObjectStore.openKeyCursor()
Returns an IDBRequest object, and, in a separate thread, returns a new IDBCursor . Used for iterating through an object store with a key.
IDBObjectStore.put()
Returns an IDBRequest object, and, in a separate thread, creates a structured clone of the value , and stores the cloned value in the object store. This is for updating existing records in an object store when the transaction's mode is readwrite .

范例

This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add . For a full working example, see our To-do Notifications app ( view example live .)

// Let us open our database
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Database initialised.</li>';
  // store the result of opening the database in db.
  db = DBOpenRequest.result;
};
// This event handles the event whereby a new version of
// the database needs to be created Either one has not
// been created before, or a new version number has been
// submitted via the window.indexedDB.open line above
DBOpenRequest.onupgradeneeded = function(event) {
  var db = event.target.result;
  db.onerror = function(event) {
    note.innerHTML += '<li>Error loading database.</li>';
  };
  // Create an objectStore for this database
  var objectStore = db.createObjectStore("toDoList", { keyPath: "taskTitle" });
  // define what data items the objectStore will contain
  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });
  objectStore.createIndex("notified", "notified", { unique: false });
  note.innerHTML += '<li>Object store created.</li>';
};
// Create a new item to add in to the object store
var newItem = [
  { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: 'December', year: 2013, notified: "no" }
];
// open a read/write db transaction, ready for adding the data
var transaction = db.transaction(["toDoList"], "readwrite");
// report on the success of the transaction completing, when everything is done
transaction.oncomplete = function(event) {
  note.innerHTML += '<li>Transaction completed.</li>';
};
transaction.onerror = function(event) {
  note.innerHTML += '<li>Transaction not opened due to error. Duplicate items not allowed.</li>';
};
// create an object store on the transaction
var objectStore = transaction.objectStore("toDoList");
// make a request to add our newItem object to the object store
var objectStoreRequest = objectStore.add(newItem[0]);
objectStoreRequest.onsuccess = function(event) {
  note.innerHTML += '<li>Request successful .</li>';
}
					

规范

规范 状态 Comment
Indexed Database API 2.0
The definition of 'IDBObjectStore' in that specification.
Recommendation
Indexed Database API Draft
The definition of 'IDBObjectStore' in that specification.
Recommendation

浏览器兼容性

更新 GitHub 上的兼容性数据
Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
IDBObjectStore Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
add Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
autoIncrement Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
clear Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
count Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
createIndex Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
delete Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
deleteIndex Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
get Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getAll Chrome 48 Edge ≤79 Firefox 44 IE ? Opera 35 Safari 10.1 WebView Android 48 Chrome Android 48 Firefox Android 48 Opera Android 35 Safari iOS 10.3 Samsung Internet Android 5.0
getAllKeys Chrome 48 Edge ≤79 Firefox 44 IE ? Opera 35 Safari 10.1 WebView Android 48 Chrome Android 48 Firefox Android 48 Opera Android 35 Safari iOS 10.3 Samsung Internet Android 5.0
getKey Chrome 48 Edge ≤79 Firefox 51 IE ? Opera 45 Safari 10.1 WebView Android 48 Chrome Android 48 Firefox Android 58 Opera Android 43 Safari iOS 10.3 Samsung Internet Android 5.0
index Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
indexNames Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
keyPath Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
name Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
openCursor Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
openKeyCursor Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 44
Disabled
44
Disabled
Disabled From version 44: this feature is behind the dom.indexedDB.experimental preference. To change preferences in Firefox, visit about:config.
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
put Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
transaction Chrome 24
24
23 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
10 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
? — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
25 — 57
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
1.5 — 7.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Available in workers Chrome Yes Edge ≤18 Firefox 37 IE ? Opera Yes Safari ? WebView Android Yes Chrome Android Yes Firefox Android 37 Opera Android Yes Safari iOS ? Samsung Internet Android Yes

图例

完整支持
完整支持
部分支持
部分支持
兼容性未知
兼容性未知
用户必须明确启用此特征。
用户必须明确启用此特征。
要求使用供应商前缀或不同名称。
要求使用供应商前缀或不同名称。

另请参阅