Git Product home page Git Product logo

tinydb's Introduction

TinyDB

easy to use multi-table indexeddb lib

Document

中文文档 zh-CN

查看 demo

🌟 quick start dev

  # start
  yarn 
  # then
  gulp

🔨 install

<script src="https://unpkg.com/browse/[email protected]/dist/tinydb.global.js"></script>

or

yarn instal -D web-tinydb

Setup

⚙ init config

初始化配置

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

insert record

插入数据

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()

getAll

获得选中表格所有数据

  async function test_getAll() {
    const result = await test.getAll('table_student')
    console.log(result)
  }
  // test_getAll()

some

获取一些数据,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()

updateRecord

更新数据

  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()

getByPrimaryKey

通过主键检索数据

  async function test_getByPrimaryKey() {
    const result = await test.getByPrimaryKey('table_student', 3)
    console.log(result)
  }
  // test_getByPrimaryKey()

getByIndex

通过创建的索引检索数据

  async function test_getByIndex() {
    const result = await test.getByIndex('table_student', {
      index: 'id',
      value: 2
    })
    console.log(result)
  }
  // test_getByIndex()

deleteRecord

删除记录,通过创建的索引删除

  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()

deleteDatabase

删除数据库

  async function test_deleteDatabase() {
    const result = await test.deleteDatabase('test')
    console.log(result)
  }
  // test_deleteDatabase()

clearTableRecord

清除表格数据

  async function test_clearTableRecord() {
    const result = await test.clearTableRecord('table_student')
    console.log(result)
  }
  // test_clearTableRecord()

deleteTable

删除表格

  async function test_deleteTable() {
    const result = await test.setVersion(3).deleteTable('table_delete')
    console.log(result)
  }
  // test_deleteTable()

tinydb's People

Contributors

hondrytravis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tinydb's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.