2016-09-09 10 views
-1

私は現在、indexdDBを使用して、一部のレコードのオフラインデータを販売店に保存しています。ストアには、id、shopname、lastsaledateなどの列があります。HTML5 indexedDBからMAX(日付)を検索

SELECT MAX(LastSaleDate) FROM Sales; 

任意の提案:私はのIndexedDBを使用して次のSQL文と同様の操作を行っていくつかの助けをご希望ですか?

+2

あなたはまだ何をしようとしたか、あなただけの求めているがいる:照会すると

store.createIndex('by_lastsaledate', 'lastsaledate'); 

、反転カーソル(「前へ」)とヌル範囲(つまり、すべてのレコード)を使用しますあなたのためにコードを書く人は誰ですか? –

+0

すべてのデータを配列に入力し、その配列から** MAX **を探してみます。 ** DATE DataType **のためにすべてが無駄になりました。 :-) 今私は別のものを試してみるつもりです。 ;-) @Boris –

答えて

0

lastsaledateプロパティのインデックスがあることを確認してください。データベースをアップグレードするときに行います。

var store = transaction.objectStore('records'); 
var index = store.index('by_lastsaledate'); 
var request = index.openCursor(/*query*/null, /*direction*/'prev'); 
request.onsuccess = function() { 
    var cursor = request.result; 
    if (cursor) { 
    console.log('max date is: ' + cursor.key); 
    } else { 
    console.log('no records!'); 
    } 
}; 
+0

データがすでにいくつかの**ライブデータベース**にあった場合はどうなりますか?そして**ライブDB **からのデータを同期して、クライアント側のインデックス付きDB **に挿入します! –

+0

既存のストアにインデックスを作成するには、バージョン番号を指定して、アップグレードされたイベントハンドラでインデックスを作成します。仕様には、導入の例があります。https://w3c.github.io/IndexedDB/#introduction - 「バージョン2は、年ごとに新しい書籍の索引を導入します」 –