インデックス、openCursor、keyRangeを使用してindexeddbオブジェクトストアで大文字と小文字を区別しない検索を実行できるかどうか教えてください。
私は大文字と小文字を区別し、歓迎すべてのヘルプは...ありがとう... ...試みの 例を
toUpperCaseの機能を使用して非常に多くの異なるvaraitionsは、それが実現可能レリではないことがあります。indexedDBの大文字と小文字を区別しない検索
var transaction = db.transaction("products", IDBTransaction.READ_ONLY);
var store = transaction.objectStore("products");
var descIndex = store.index('Index1');
var boundKeyRangeUpper = IDBKeyRange.bound(request.term.toUpperCase(), (request.term.toUpperCase()+'Z'));
descIndex.openCursor(boundKeyRangeUpper).onsuccess = function (e)
UPDATE
この何ですか?カバーと可能性はすなわちFA、FA・FA・FA ...これは上記検索の唯一すなわち「F」
var boundKeyRangeUpper = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'Z'); var boundKeyRangeUpper2 = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'z'); var boundKeyRangeLower = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'z'); var boundKeyRangeLower2 = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'Z');
結果最初の文字の上に行われ 4つの範囲を:私は実装してしまいました別のobjectStoreに格納されますが、その説明は大文字で、したがってFISH、FRUIT、FRESH SALAD ... Fの後に文字が押された場合'r'検索ではすべてが大文字であるこの新しいオブジェクトストアが検索されます...これはこれまでのところ理想的な解決策ではありませんが、機能しており、私のニーズには素早いです...おそらく、そうではありません...
ありがとうございました。これは合理的な解決策ですが、これはすべてのエントリを複製する数千の行のデータセットのためです...私は再帰を使用してtoUpperCaseとtoLowerCaseで1つのバインドを使用していましたが、まだ何も具体的ではありません。 – BriscoCountyJr
コードで、 keyRangeを指定したときに、単一行または複数行を照会していましたか? – Amro
複数の行。私がしようとしているのは、あなたが手紙を押すときです。 'F'、オートコンプリートボックスはFRESH FURIT、fragances、fReSh Saladを返します。したがって、 'F'を押すと、idexeddbの検索は、製品名が始まるものとは無関係のすべての製品、つまり小文字の「f」または大文字の「F」を返します。 ..私はSQLでそれがはるかに簡単だろうと知っているが、それはローカルストレージが進む方法であるようにindexeddbを行くと思った... – BriscoCountyJr