最便捷的indexedDB操作工具InDB

1、文档位置

InDB开发文档_唐霜的博客最便捷的indexedDB操作工具,10分钟上手indexedDB操作icon-default.png?t=M3K6https://www.tangshuang.net/5681.html2、使用demo

1)下载依赖

npm i indb

2)项目中使用(异步回调,必须使用async / await)

import InDB from "indb";
async () => {
      const DB_NAME = "InDB_TEST";
      const DB_VERSION = 5;
      const idb = new InDB({
        name: DB_NAME,
        version: DB_VERSION,
        stores: [
          {
            name: "departs",
            keyPath: "id",
            autoIncrement: true,
          },
          {
            name: "students",
            keyPath: "id",
            indexes: [
              {
                name: "id",
                keyPath: "id",
                unique: true,
              },
              {
                name: "name",
              },
              {
                name: "age",
              },
            ],
          },
          {
            name: "kv",
            isKv: true,
          },
          {
            name: "cleartest",
          },
          {
            name: "txtest",
            keyPath: "id",
          },
        ],
      });
      const departstore = idb.use("departs");
      const studentstore = idb.use("students");
      const kvstore = idb.use("kv");
      const teststore = idb.use("cleartest");
      const txstore = idb.use("txtest");

      // clear
      await studentstore.clear();
      let first = await studentstore.first();
      console.log("clear", first);

      // add
      await studentstore.add({ id: "1", name: "toda", age: 10 });
      let addObj = await studentstore.get("1");
      console.log("add", addObj);

      // put
      let time = new Date();
      await studentstore.put({ id: "2", name: "sood", age: 10, time });
      await studentstore.put({ id: "3", name: "tomy", age: 10 });
      await studentstore.put({ id: "4", name: "goda", age: 11 });
      await studentstore.put({ id: "2", name: "othe", age: 23 });
      let putobj = await studentstore.get("2");
      console.log("put", putobj);

      //put multiple
      await studentstore.put([
        { id: "6", name: "xida", age: 10 },
        { id: "7", name: "himen", age: 11 },
      ]);
      const putmultiplecount = await studentstore.count();
      console.log("put multiple", putmultiplecount);

      // delete
      await studentstore.delete("1");
      let deleteobj = await studentstore.get("1");
      console.log("delete", deleteobj);

      // delete multiple
      await studentstore.delete(["6", "7"]);
      const deletemultiplecount = await studentstore.count();
      console.log("delete multiple", deletemultiplecount);

      // remove
      await studentstore.put({ id: "10", name: "tokyo" });
      const removebefore = await studentstore.get("10");
      console.log("remove before", removebefore);
      await studentstore.remove(removebefore);
      const removeafter = studentstore.get("10");
      console.log("remove after", removeafter.name);

      // remove multipl
      await studentstore.put([
        { id: "11", name: "tokyo" },
        { id: "12", name: "tokyo" },
      ]);
      const removemultiplbeforecount1 = await studentstore.count();
      console.log("remove multipl before", removemultiplbeforecount1);
      await studentstore.remove([
        { id: "11", name: "tokyo" },
        { id: "12", name: "tokyo" },
      ]);
      const removemultiplaftercount2 = await studentstore.count();
      console.log("remove multipl after", removemultiplaftercount2);

      // get
      let getobj = await studentstore.get("3");
      console.log("get", getobj);

      // get multiple
      let getmultipleobjs = await studentstore.get(["3", "4", "5"]);
      console.log("get multiple", getmultipleobjs);

      // find
      let findobj = await studentstore.find("age", 11);
      console.log("find", findobj);

      // keys
      let keys = await studentstore.keys();
      console.log("keys", keys);

      // all
      let allitems = await studentstore.all();
      console.log("all", allitems);

      // first
      let firstitem = await studentstore.first();
      console.log("first", firstitem);

      // last
      let lastitem = await studentstore.last();
      console.log("last", lastitem);

      // some
      let someitems = await studentstore.some(2);
      console.log("some", someitems);

      // some with offset
      let somewithoffsetitems = await studentstore.some(2, 1);
      console.log("some with offset", somewithoffsetitems);

      // count
      let count = await studentstore.count();
      console.log("count", count);

      // query
      let queryobjs = await studentstore.query("age", 10);
      console.log("query", queryobjs);

      // query >
      let queryobjs2 = await studentstore.query("age", 15, ">");
      console.log("query >", queryobjs2);

      // query !=
      let queryobjs3 = await studentstore.query("age", 23, "!=");
      console.log("query !=", queryobjs3);

      // select 1 and 2
      let stds1 = await studentstore.select([
        { key: "age", value: 10, compare: "<=" },
        { key: "name", value: "tomy", compare: "=" },
      ]);
      console.log("select 1 and 2", stds1);

      // select 1 or 2
      let stds2 = await studentstore.select([
        { key: "age", value: 22, compare: ">", optional: true },
        { key: "age", value: 10, compare: "=", optional: true },
      ]);
      console.log("select 1 or 2", stds2);

      // (1 and 2) or (3)
      let stds3 = await studentstore.select(
        [
          { key: "age", value: 10, compare: "<=" },
          { key: "name", value: "tomy", compare: "=" },
        ],
        [{ key: "age", value: 11, compare: ">" }]
      );
      console.log("select (1 and 2) or (3)", stds3);

      // use
      await departstore.clear();
      await departstore.put({ id: "1", name: "doge" });
      let useobjs = await departstore.all();
      console.log("use", useobjs);

      // keys in autoincrease store
      let departstorekeys = await departstore.keys();
      console.log("keys in autoincrease store", departstorekeys);

      // setItem/getItem/removeItem
      await kvstore.clear();
      await kvstore.setItem("2", "jiago");
      let setItemname = await kvstore.getItem("2");
      console.log("setItem", setItemname);

      await kvstore.removeItem("2");
      let getItemnil = await kvstore.getItem("2");
      console.log("getItem", getItemnil);

      // clear
      await teststore.clear();
      let clearcount = await teststore.count();
      console.log("clear", clearcount);

      // Storage
      const store = new InDB();
      await store.setItem("name", "tomy");
      const Storagename = await store.getItem("name");
      console.log("Storage", Storagename);

      // large data put
      await studentstore.clear();
      const items = [];
      for (let i = 0; i < 1000; i++) {
        const random = Math.random() + "";
        items.push({
          id: random,
          name: "name_" + random,
          age: "age_" + random,
        });
      }
      await studentstore.put(items);
      const largedataputcount = await studentstore.count();
      console.log("large data put count",largedataputcount);
      const largedataputcountsome = await studentstore.some(200);
      console.log("large data put count some",largedataputcountsome);
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值