1. 開発者向けのウェブ技術
  2. Web API
  3. IDBObjectStore
  4. IDBObjectStore: get() メソッド

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

IDBObjectStore: get() メソッド

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

IDBObjectStore インターフェイスの get() メソッドは、IDBRequest オブジェクトを返し、別スレッドで指定のキーによって選択されるオブジェクトを返します。これはオブジェクトストアから特定のレコードを取得する用です。

値が正常に見つかった場合は、その構造化複製が作成され、要求オブジェクトの result 属性に設定されます。

メモ: このメソッドは「レコードがデータベースに存在しない場合」と「レコードの値が undefined の場合」で同じ結果を返します。 これらを区別するには、同じキーで openCursor() メソッドを呼びます。このメソッドは、レコードが存在する場合はカーソルを返し、存在しない場合はカーソルを返しません。

メモ: この機能はウェブワーカー内で利用可能です。

構文

js
get(key)

引数

key

取得するレコードを特定するキーまたはキー範囲です。

返値

この操作に関係する今後のイベントが発火する IDBRequest オブジェクトです。

操作に成功した場合は、この要求の result プロパティの値は指定のキーまたはキー範囲にマッチする最初のレコードの値になります。

例外

このメソッドは、以下の種類のいずれかの DOMException を投げる可能性があります。

TransactionInactiveError DOMException

この IDBObjectStore のトランザクションが実行中でないとき投げられます。

DataError DOMException

与えられたキーまたはキー範囲に無効なキーが含まれる時投げられます。

InvalidStateError DOMException

この IDBObjectStore が削除されたか取り除かれたとき投げられます。

以下のコード断片では、データベースの読み書きトランザクションを開き、get() を用いてオブジェクトストアから特定のレコード 1 個 (キー "Walk dog" を持つサンプルレコード) を取得します。データオブジェクトを取得したら、通常の JavaScript により更新し、IDBObjectStore.put 操作によりデータベースに書き戻すことができます。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)

js
// データベースを開く
const DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = (event) => {
 note.innerHTML += "<li>データベースを初期化しました。</li>";
 // データベースを開いた結果を変数 db に格納する
 // これは後でよく使う
 db = DBOpenRequest.result;
 // getData() 関数を実行し、データベースからデータを取得する
 getData();
};
function getData() {
 // データベースの読み書きトランザクションを開き、データを所得する準備をする
 const transaction = db.transaction(["toDoList"], "readwrite");
 // すべて完了したとき、トランザクションの正常終了を報告する
 transaction.oncomplete = (event) => {
 note.innerHTML += "<li>トランザクションが完了しました。</li>";
 };
 transaction.onerror = (event) => {
 note.innerHTML += `<li>トランザクションはエラーのため開けませんでした: ${transaction.error}</li>`;
 };
 // トランザクションでオブジェクトストアを生成する
 const objectStore = transaction.objectStore("toDoList");
 // オブジェクトストアからキーで指定したレコードを取得する要求をする
 const objectStoreRequest = objectStore.get("Walk dog");
 objectStoreRequest.onsuccess = (event) => {
 // 要求の成功を報告する
 note.innerHTML += "<li>要求に成功しました。</li>";
 const myRecord = objectStoreRequest.result;
 };
}

仕様書

仕様書
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-get1

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /