KeyPath name on object store Athletes_table is not indexed From previous:
问题描述:当我使用本地数据dexie.js(对indexdb进行封装后的数据库)的时候遇到了这个坑,添加表的时候没有建立字段直接声明了一个id后就往里加对象数组,下面是建表代码
//实例化数据库
let db = new Dexie('sportsman');
//创建数据表
await db.version(1).stores({
Athletes_table:'&id'
});
console.log('数据库:', db);
以为会自动创建索引,结果查询的时候就出现了这个警告。
//查询代码
new this.$Dexie('sportsman').open().then(async function(db) {
console.log('数据库:', db);
that.userData = await db.table('Athletes_table').where('name').equals('张三').toArray();
db.close(); //获取数据后关闭数据库
});
警告信息
提示索引未找到,但是光从数据看明明有这个索引:
解决方法:想使用dexie.js 进行where筛选查找必须在建表的时候创建索引才能根据此索引去搜索
let db = new Dexie('sportsman');
//创建数据表
await db.version(1).stores({
Athletes_table:'&id,name' //添加name索引,需要根据哪个字段查找就添加那个
});
console.log('数据库:', db);
希望此文能帮到您,欢迎留言交流
转载请附上原文链接
还没有评论,来说两句吧...