IndexedDB с использованием YDN-DB: каков наиболее эффективный способ получить наибольшее значение первичного ключа?

#indexeddb #ydn-db

#индексированный db #ydn-db

Вопрос:

При создании автономного приложения с использованием оболочки YDN-DB для IndexedDB мне теперь нужно запросить в любом хранилище объектов наивысшее Integer значение первичного ключа в хранилище. В дальнейшем я могу предсказать и использовать следующий номер автоинкремента даже до запуска следующего INSERT . В настоящее время я могу придумать следующий подход:

 db.values('store_name').done(function (recordset) {
   //run through the key/value pairs in recordset until I arrive at the 
         highest value.
});
 

Или, возможно:

 db.from('store_name').select('primary_key').order('primary_key', true).list(1)
.done(function(value) {
  //use value for some task;
});
 

Есть ли более эффективный способ?
И пока мы этим занимаемся, "primary_key" аргумент, указанный в .order('primary_key', true) , кажется мне излишним, поскольку такое упорядочение обычно осуществляется по первичному ключу. Если это так, то каков синтаксис, чтобы пропустить это?

Спасибо.

Редактировать:

Во время ожидания я понял, что, фактически .order('primary_key', true) , второй параметр true (==reverse) был полностью проигнорирован механизмом запросов. Но на помощь пришла приведенная ниже форма:

 db.from('store_name').select('primary_key').reverse().list(1)
    .done(function(highest){
        console.log(highest);
 

});

Хотя это кажется немного более изящным, я все еще жажду одобрения со стороны «профессоров».

Спасибо.

Комментарии:

1. Обновите документ API, чтобы order не поддерживать второй аргумент, направление. Это сбивает с толку, если было предыдущее направление заказа. reverse метод прост.

Ответ №1:

Это очень распространенная операция. Я буду использовать

 db.keys('store_name', null, 1, 0, true)
 

Использование модуля запроса db.from является оболочкой для вышеуказанного метода. Извините за регрессию при order игнорировании направления. Я исправлю. Спасибо за сообщение.

Комментарии:

1. Спасибо за ваш быстрый ответ. Я изучал db.keys() предложенный вами синтаксис. Пытаюсь понять все его аргументы и использование, прежде чем решить, как лучше всего я могу его использовать. Прямо сейчас я здесь: dev.yathit.com/ydn-db/schema.html . Куда-нибудь еще вы можете направить меня?