获取IndexedDB中添加记录的密钥

我在IndexedDB中有这个代码:

var request = objectStore.add({ entryType: entryType, entryDate: t}); 

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

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

 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; }; 

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

仔细阅读此代码

 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; }; 

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

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

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

它在步骤8中记录:如下:

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

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

我将“IndexedDB”放入搜索引擎并发现了这一点 。 这产生了短语“密钥生成器”,所以我也搜索了这个,这导致我和这个 。

StackOverflow链接讨论了使用UUID,当然可以用JavaScript生成UUID,最后一个链接似乎有一些示例可以开箱即用。