如何使用Dexie在IndexedDB指定列中查询多个键?
解决Dexie查询指定列多个值的问题
你需要用Dexie的anyOf()方法来实现指定列匹配多个值的查询,bulkGet()是用来根据主键批量获取数据的,所以才会不符合你的需求。
正确代码示例
const keys = [3290, 43827, 5894, 3747]; // 查询scheme_codes列值在keys数组中的所有记录 this.table('schemes').where('scheme_codes').anyOf(keys).toArray() .then(results => { // 处理查询结果 console.log(results); }) .catch(error => { // 捕获错误 console.error(error); });
关键说明
anyOf()方法专门用于匹配指定列的值存在于给定数组中的记录,完全符合你的需求。- 如果
scheme_codes列还没有建立索引,建议在定义数据库表结构时添加索引,避免全表扫描影响性能:// 示例:创建表时为scheme_codes添加索引 const db = new Dexie('yourDBName'); db.version(1).stores({ schemes: 'id, scheme_codes' // id为主键,scheme_codes为普通索引 });
内容的提问来源于stack exchange,提问作者Junaid Firdosi
相关产品推荐
相关产品推荐

