#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 . Куда-нибудь еще вы можете направить меня?