easy to use multi-table indexeddb lib
# start yarn # then gulp
<script src="https://unpkg.com/browse/web-tinydb@0.1.9/dist/tinydb.global.js"></script>
or
yarn instal -D web-tinydb
初始化配置
import { TinyDB } from 'web-tinydb' const tables = [ { name: "table_student", primaryKey: "id", autoIncrement: true, indexs: [{ index: "id", relativeIndex: "id", unique: true }, { index: "name", relativeIndex: "name", unique: false }, { index: "school", relativeIndex: "school", unique: false } ] }, ] const test = TinyDB.of() test.setup({ dbName: 'test', version: 1 }) async function init() { const result = await test.createTable(tables) console.log(result) } init()
then you can checkout you local indexeddb
插入数据
async function test_insert() { await test.insert('table_student', { name: 'lee1', school: 'Github1', }) await test.insert('table_student', { name: 'lee2', school: 'Github2', }) await test.insert('table_student', { name: 'lee3', school: 'Github3' }) await test.insert('table_student', { name: 'lee4', school: 'Github4' }) await test.insert('table_student', { name: 'lee5', school: 'Github5' }) } test_insert()
获得选中表格所有数据
async function test_getAll() { const result = await test.getAll('table_student') console.log(result) } // test_getAll()
获取一些数据,lower <= rang <= upper
async function test_some() { const result = await test.some('table_student', { index: 'id', lower: 1, upper: 3 }) console.log(result) } // test_some()
更新数据
async function test_update() { const newData = { name: 'lee11' } const result = await test.updateRecord('table_student', { index: 'id', value: 1 }, newData) console.log(result) } // test_update()
通过主键检索数据
async function test_getByPrimaryKey() { const result = await test.getByPrimaryKey('table_student', 3) console.log(result) } // test_getByPrimaryKey()
通过创建的索引检索数据
async function test_getByIndex() { const result = await test.getByIndex('table_student', { index: 'id', value: 2 }) console.log(result) } // test_getByIndex()
删除记录,通过创建的索引删除
async function test_deleteRecord() { // use index const result = await test.deleteRecord('table_student', { index: 'id', value: 6 }) // use primaryKey const result = await test.deleteRecord('table_student', 4) console.log(result) } // test_deleteRecord()
删除数据库
async function test_deleteDatabase() { const result = await test.deleteDatabase('test') console.log(result) } // test_deleteDatabase()
清除表格数据
async function test_clearTableRecord() { const result = await test.clearTableRecord('table_student') console.log(result) } // test_clearTableRecord()
删除表格
async function test_deleteTable() { const result = await test.setVersion(3).deleteTable('table_delete') console.log(result) } // test_deleteTable()