2016-09-08 16 views
1

次の問題に対する回答は見つかりませんでした。dexieで特定のデータ構造体のクエリを構成する方法

次のデータ構造が示されています。私は8500時の圧力のための時間(30)を見つけたいと思っています。私は質問をそこで形成する方法を知らない。

誰かが私を助けることができますか?ありがとうございました。あなたはChromeのみ、オペラ、FirefoxとSafariの10をターゲットにする場合

種類が

my_db.version(1).stores({ 
    hose: "++, &deviceId, hoseName, *meassuredValues" 

my_db.open().then(function() { 
    my_db.hose.add({ 
    deviceId: "11", 
    hoseName: "DN 20", 
    meassuredValues: [ 
     { pressure: 10000, time: 0 }, 
     { pressure: 9958, time: 10 }, 
     { pressure: 9000, time: 20 }, 
     { pressure: 8500, time: 30 }, 
     { pressure: 8000, time: 40 }, 
    ] 
    }); 
}); 

答えて

1

に関しては、複合インデックスを使用します。時間と圧力の組み合わせであり、あなたがIE、エッジとSafari < 10をターゲットにする必要がある場合は、

my_db.hose.where('[time+pressure]').equals([30, 8500]).toArray(); 

を照会[時間+圧力]でインデックスと思いますあなたのデータは、1つを選択する必要があります が助けてくれてありがとう、

my_db.hose.where('pressure').equals(8500).and(function (x) { 
    return x.time === 30; 
}).toArray(); 
+0

こんにちはデビッド:インデックスとは、残りのJSフィルターを追加します。それは次のように機能するはずです:ユーザは圧力8500の時間を知りたいと思う。彼はこの値(8500)を入力フィールドに置き、dexieは対応する時間を検索しなければならない。 データベースはルックアップテーブルに似ています。もう一度私を助けてくれますか?ありがとうございます 種類Achim – Achim

+0

... my_db.hose.where( '圧力')。等しい(8500)... ist空です。キー(キーパス) 'meassuredValues'がありますが、内部にオブジェクトはありません。どうしてか分かりません。 – Achim

+0

正しいと思われます。あなたはあなたのデータベースにデータを持っていますか?どのようにクエリを実行していますか? toArray()、each()またはfirst()を使用しますか?結果として生じるプロミスを正しく消費していますか? –

関連する問題