2015-03-31 5 views
2

В IndexedDB У меня есть индекс, как это:IndexedDB получить все вхождения в индекс

store.createIndex('distinctEqual', 'distinctEqualString', {unique: false}); 

Когда я делаю:

var tx = db.transaction(dbSettings.objectStore, "readwrite"); 
var store = tx.objectStore(dbSettings.objectStore); 
var index = store.index('distinctEqual'); 
var reqIndex = index.get("pippo"); 

Можно ли получить все вхождения «Пиппо» без использования курсора в этом индексе IndexedDb?

EDIT

Если я сделать:

var cursorIndex =  
index.openKeyCursor(IDBKeyRange.only(currItem.distinctEqualString)); 
cursorIndex.onsuccess = function(evt) { 
    //Can I know how many elements are there in cursorIndex? 
}; 

Как и в комментарии, я могу знать, сколько элементов есть в cursorIndex?

ответ

1

Вам понадобится использовать курсор. Это причина использования курсора.

0

Получатель вернет только первый элемент, который соответствует ключевому ряду. Если вы хотите получить все, вы можете использовать курсор, как вы упомянули. Если вы хотите узнать количество элементов, вы можете использовать метод count.

+0

Невозможно использовать метод подсчета курсора. –

+0

вы можете подсчитать количество элементов, сохраняя индекс при циклическом перемещении по курсору, но если вам нужно знать только количество элементов, лучше использовать метод подсчета –

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