easy to use multi-table indexeddb lib
# start
yarn
# then
gulp
<script src="https://unpkg.com/browse/[email protected]/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()