2016-11-30 3 views
0

Я использую DexieIndexedDB сортировки индекса на основе целочисленного значения

var db = new Dexie('name'); 
db.version(4) 
.stores({ 
    sentence: "&sentenceId, [sentence__authorId+sentenceChapter+sentenceNo], sentenceContent, headingContent, sentenceStarts, sentenceEnds" 
)}; 

и мне нужно, чтобы получить результат, отсортированный по sentenceNo

db.sentence.where('[sentence_authorId+sentenceChapter+sentenceNo]') 
.between([articleId, chapter_selected.toString(), -Infinity], [articleId, chapter_selected.toString(), '\uffff']) 
.each (function (sentence) { 
//............ 
}); 

но результат я получаю из приведенного выше запроса, как сортировка целое число столбцов в строки формата

например: 1,11,12,13,14 ...

как сортировать SENTE nceNo в целое

например: 1,2,3,4, ...

ответ

0

Вы уверены, что sentenceNo не хранятся в виде строк вместо чисел? IndexedDB перечисляет ваш индекс в отношении его типов.

Если вы уверены, что typeof sentanceNo === 'number', единственное, что я мог думать, было бы, если вы используете Safari < 10 с IndexedDBShim - теоретически, прокладка может иметь такую ​​ошибку, но это просто теории.

+0

Извините, проблема заключается не в dexie, это вызвано запросом json, а json, созданный из результата базы данных mysql, и mysql дает весь результат в строке, вызвавшей ошибку. – ajith

Смежные вопросы