使用YDN-DB的IndexedDB:检索最高主键值的最有效方法是什么?

时间:2014-06-19 16:42:17

标签: indexeddb ydn-db

使用针对IndexedDB的YDN-DB包装器构建脱机应用程序时,我现在需要在任何对象存储库中查询商店中最高Integer主键值。通过扩展,我可以预测并使用下一个autoIncrement编号,甚至在运行下一个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 个答案:

答案 0 :(得分:0)

这是非常常见的操作。我会用

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

使用查询模块db.from是上述方法的包装。对于order忽略方向的回归感到抱歉。我会解决的。感谢您的报道。