16

ブール型フィールドにインデックスを作成することはできますか?

保存したいレコードのスキーマは次のとおりです。

{
  id:1,
  name:"Kris",
  _dirty:true
}

通常の一意ではないインデックスを作成しました(onupgradeneeded):

...
store.createIndex("dirty","_dirty",{ unique: false })
...

インデックスは作成されましたが、空です! - インデックスの IndexedDB ブラウザには、ブール値を持つレコードはありません。文字列数値日付、さらには配列のみです。

Chrome 25 カナリアを使用しています

_dirty 属性が true に設定されているすべてのレコードを検索したいのですが、_dirty を string または int に変更する必要がありますか?

4

4 に答える 4

10

はい、ブール値は有効なキーではありません

必要に応じて、もちろん 1 と 0 に解決できます。

しかし、それには正当な理由があります。ブール値のインデックス付けは有益ではありません。上記の場合、インデックスクエリではなく、テーブルスキャンとフィルターをオンザフライで実行できます。

于 2012-12-02T23:20:52.680 に答える
0

ブール値のプロパティは、排他的な状態 (アクティブ/非アクティブ)、「オン/オフ」、「有効/無効」、「はい/いいえ」を表します。読みやすくするために、JS データ モデルでブール値の代わりにこれらの値のペアを使用できます。また、この戦術により、他の状態を追加できます (「NotSet」、オブジェクトで何かが構成されていない場合など)...

于 2014-04-07T22:31:33.990 に答える