使用针对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);
});
虽然这似乎有点光滑,但我仍然渴望得到'教授'的支持。
谢谢。
答案 0 :(得分:0)
这是非常常见的操作。我会用
db.keys('store_name', null, 1, 0, true)
使用查询模块db.from
是上述方法的包装。对于order
忽略方向的回归感到抱歉。我会解决的。感谢您的报道。