let request = indexedDB.open('CSVThreeJs', 1); request.onerror = function(event) { console.log('打开数据库出错!'); }; request.onupgradeneeded = function(event) { console.log('创建执行'); let db = event.target.result; let store = db.createObjectStore('scene_9527', { keyPath: 'uuid' }); }; request.onsuccess = function(event) { let db = event.target.result; let tx = db.transaction('scene_9527', 'readwrite'); let store = tx.objectStore('scene_9527'); for (let i = 1; i <= 100; i++) { store.put({ uuid: i, name: 'aaa' }); } tx.oncomplete = function() { console.log('添加成功!'); }; tx.onerror = function() { console.log('添加失败!'); }; };使上文中的值不包含uuid
时间: 2024-03-21 14:43:38 浏览: 23
好的,你的问题是如何修改上文中的代码,使得存储到数据库的值不包含 uuid 字段?
可以直接修改 `store.put()` 方法中存储的对象,将其改为不包含 uuid 字段的对象,如下所示:
```
store.put({ name: 'aaa' });
```
这样就能将不包含 uuid 字段的对象存储到数据库中了。
相关问题
let request = indexedDB.open('CSVThreeJs', 1); request.onerror = function(event) { console.log('打开数据库出错!'); }; request.onupgradeneeded = function(event) { console.log('创建执行'); let db = event.target.result; // 创建一个名为“scene_9527”的对象存储 let store = db.createObjectStore('scene_9527', { keyPath: 'uuid' }); }; 在上文中scene_9527添加uuid为1-100值为{name:'aaa'}
你的问题不是很明确,我不确定你是在询问什么。但是,我可以理解你的意思,你想在 `scene_9527` 对象存储中添加100个对象,每个对象都有一个 uuid 属性和一个 name 属性。如果是这样,你可以按照以下方式进行操作:
```
let request = indexedDB.open('CSVThreeJs', 1);
request.onerror = function(event) {
console.log('打开数据库出错!');
};
request.onupgradeneeded = function(event) {
console.log('创建执行');
let db = event.target.result;
let store = db.createObjectStore('scene_9527', { keyPath: 'uuid' });
};
request.onsuccess = function(event) {
let db = event.target.result;
let tx = db.transaction('scene_9527', 'readwrite');
let store = tx.objectStore('scene_9527');
for (let i = 1; i <= 100; i++) {
store.put({ uuid: i, name: 'aaa' });
}
tx.oncomplete = function() {
console.log('添加成功!');
};
tx.onerror = function() {
console.log('添加失败!');
};
};
```
这个代码片段中,我们首先创建了一个名为 `CSVThreeJs` 版本为 `1` 的 IndexedDB 数据库。如果数据库已经存在,则直接打开数据库。如果数据库不存在,则创建一个名为 `scene_9527` 的对象存储,并且使用 `uuid` 属性作为主键。在 `onsuccess` 回调函数中,我们使用事务来操作对象存储。循环100次,每次向对象存储中添加一个包含 `uuid` 属性和 `name` 属性的对象。最后,当事务完成时,我们可以在 `oncomplete` 回调函数中输出一条添加成功的消息。如果事务出现错误,则可以在 `onerror` 回调函数中输出一条添加失败的消息。
以下代码中request.onupgradeneeded = function(event)不执行:// 打开或创建一个名为“myDatabase”的数据库并创建一个名为“myStore”的存储 let request = indexedDB.open('myDatabase', 1); request.onerror = function(event) { console.log('打开数据库出错!'); }; request.onupgradeneeded = function(event) { console.log('创建执行'); let db = event.target.result; // 创建一个名为“myStore”的对象存储 let store = db.createObjectStore('myStore', { keyPath: 'id' }); // 添加一个名为“name”的索引 store.createIndex('name', 'name', { unique: false }); }; request.onsuccess = function(event) { let db = event.target.result; // 在“myStore”存储中添加一条记录 let transaction = db.transaction(['myStore'], 'readwrite'); let store = transaction.objectStore('myStore'); let data ={ id: 0, name: JSON.stringify(editor) }; let request = store.add(data); request.onsuccess = function(event) { console.log('数据已成功添加到存储中!'); }; transaction.oncomplete = function(event) { db.close(); }; };
这段代码中的 `request.onupgradeneeded` 应该在打开数据库成功后被调用,否则会出现该事件处理程序不执行的情况。
请将 `request.onupgradeneeded` 放在 `request.onsuccess` 的回调函数中,像这样:
```
let request = indexedDB.open('myDatabase', 1);
request.onerror = function(event) {
console.log('打开数据库出错!');
};
request.onsuccess = function(event) {
let db = event.target.result;
let transaction = db.transaction(['myStore'], 'readwrite');
let store = transaction.objectStore('myStore');
let data = { id: 0, name: JSON.stringify(editor) };
let request = store.add(data);
request.onsuccess = function(event) {
console.log('数据已成功添加到存储中!');
};
transaction.oncomplete = function(event) {
db.close();
};
};
request.onupgradeneeded = function(event) {
console.log('创建执行');
let db = event.target.result;
let store = db.createObjectStore('myStore', { keyPath: 'id' });
store.createIndex('name', 'name', { unique: false });
};
```
这样,当数据库打开成功后,就会调用 `request.onupgradeneeded` 来创建对象存储和索引,然后继续执行添加数据的操作。