获取IndexedDB中添加记录的密钥

Sta*_*low 3 javascript jquery indexeddb

我在IndexedDB中有这个代码:

var request = objectStore.add({ entryType: entryType, entryDate: t});
Run Code Online (Sandbox Code Playgroud)

现在我想知道刚添加的这条记录的关键.我该怎么做?

我找到了这篇文章,这段代码:

var data = {"bookName" : "Name", "price" : 100, "rating":"good"};
var request = objectStore.add(data);
request.onsuccess = function(event){
    document.write("Saved with id ", event.result)
    var key = event.result;
};
Run Code Online (Sandbox Code Playgroud)

这对我不起作用 - 键显示为未定义.我想我错过了一些基本的东西!

Vik*_*ram 7

仔细阅读此代码

var data = {"bookName" : "Name", "price" : 100, "rating":"good"};
var request = objectStore.add(data);
request.onsuccess = function(event){
    document.write("Saved with id ", event.result)
    var key = event.target.result;
};
Run Code Online (Sandbox Code Playgroud)

希望此代码能够检索最后插入的记录的密钥


Kya*_*Tun 5

规范是为用户代理编写的,而不是为开发人员编写的。所以这很令人困惑。密钥生成器由用户代理提供。

event处理程序接收到的任何对象onsuccess始终具有event.target.result. 这是您正在寻找的钥匙。如果您不提供密钥,假设您将 autoIncrement 设置为 true,则该密钥会自动生成。

记录在步骤 8: 中,如下所示:

  1. 该算法的结果是关键。


hal*_*fer -1

这里的技巧是知道如何使用短语迭代进行搜索,直到找到所需的内容。我以前从未听说过 IndexedDB,但似乎找到了你想要的。

我将“IndexedDB”放入搜索引擎并找到了这个。这产生了短语“密钥生成器”,所以我也搜索了它,这导致我找到了thisthis

StackOverflow 链接讨论了使用 UUID,当然可以用 JavaScript 生成 UUID,最后一个链接似乎有一些示例可以开箱即用地执行您想要的操作。