我正在尝试构建一个函数,该函数在传递keypath后检索存储中的下一个元素。我的getItem看起来像那样。
req = smartpigsdb.get(store, keypath);
req.done(function(record) {
if(record!==undefined || typeof record=='object'){
// do something with the record
}
else console.log('error getItem: ' + e);
});
req.fail(function(e) {
console.log(e);
});
如何使用YDN-DB实现这一目标?
答案 0 :(得分:1)
如果您不知道密钥,则无法使用get
。您必须使用values
来迭代记录。限制为1,这样您只能得到一个结果。你可以使用知识密钥的lowerBound keyRange,这样你就可以在密钥之后得到下一个对象。
答案 1 :(得分:0)
最后我做了类似的事情,它有效,但我不确定是最好的方法。 ' IDX'是商店对象库的索引。
var range = new ydn.db.KeyRange.lowerBound(index+1);
var iter = new ydn.db.Iterator(store, 'idx', range); // 'idx' is an index for store object store
db.values(iter, 1).done(function(item) {
if(item.length > 0){
var req = db.get(store, item[0]);
req.done(function(record) {
if(record!==undefined || typeof record=='object'){
// do soemthing with the record
}
else {
console.log('record could not be found');
}
});
req.fail(function(e) {
console.log(e);
});
}
});
如果我想检索以前的记录,我尝试使用range = new ydn.db.KeyRange.upperBound(index);
做同样的事情,但我总是从商店获得第一条记录,所以我改为使用range = new ydn.db.KeyRange.lowerBound(index-1);
请给我一些反馈。再次感谢图书馆。 此致,弗罗林。