Javascript 获取IndexedDB中添加记录的密钥
我在IndexedDB中有以下代码:Javascript 获取IndexedDB中添加记录的密钥,javascript,jquery,indexeddb,Javascript,Jquery,Indexeddb,我在IndexedDB中有以下代码: var request = objectStore.add({ entryType: entryType, entryDate: t}); 现在我想知道刚才添加的这个记录的密钥。我该怎么做 我找到了,还有这个 代码: 这对我不起作用-键显示为未定义。我想我错过了一些基本的东西 这里的诀窍是知道如何使用短语进行迭代搜索,直到找到所需内容。我以前从未听说过IndexedDB,但似乎已经找到了您想要的 我找到了。这就产生了“密钥生成器”这个短语,因此我找到了和
var request = objectStore.add({ entryType: entryType, entryDate: t});
现在我想知道刚才添加的这个记录的密钥。我该怎么做
我找到了,还有这个
代码:
这对我不起作用-键显示为未定义。我想我错过了一些基本的东西 这里的诀窍是知道如何使用短语进行迭代搜索,直到找到所需内容。我以前从未听说过IndexedDB,但似乎已经找到了您想要的 我找到了。这就产生了“密钥生成器”这个短语,因此我找到了和 StackOverflow链接讨论了UUID的使用,UUID当然可以在JavaScript中生成,最后一个链接似乎提供了一些示例,可以根据您的需要立即执行操作。是为用户代理编写的,而不是为开发人员编写的。所以这是令人困惑的。密钥生成器由用户代理提供 由
onsuccess
处理程序接收的任何event
对象始终具有event.target.result
。这是你要找的钥匙。如果不提供该键,则会自动生成该键,前提是将autoIncrement设置为true
步骤8:如下所示:
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;
};
希望此代码能够检索上次插入记录的键如果您正在使用IndexedDB的
idb
Promise包装器,那么新键只是add()
调用的返回值:
import { openDB } from 'idb';
const db = await openDB(...);
const tx = db.transaction('mystore', 'readwrite');
const newId = await tx.store.add({ hello: 'world' });
await tx.done;
console.log(`Autogenerated unique key for new object is ${newId}`);
当然,请记住,只有在传递给
createObjectStore()
的选项中包含autoIncrement:true
时,这才有效。我应该认为IndexedDB有一些文档-那里没有关于这方面的信息吗?我找不到它-有什么想法吗?
import { openDB } from 'idb';
const db = await openDB(...);
const tx = db.transaction('mystore', 'readwrite');
const newId = await tx.store.add({ hello: 'world' });
await tx.done;
console.log(`Autogenerated unique key for new object is ${newId}`);