扫一扫分享
Dexie.js 是 indexedDB 的包装库。dexie的操作方法,功能上和sql差不多,不过似乎没有多表关联的功能。
由于原生 indexedDB 具有几下缺点:
基于以上原因,出现了Dexie.js库。
Dexie.js解决了原生 IndexedDB api 的三个主要问题:
Dexie 提供了一个简洁的数据库 API,具有经过深思熟虑的 API 设计、强大的错误处理、可扩展性、更改跟踪感知和扩展的 KeyRange 支持(不区分大小写的搜索、设置匹配和 OR 操作)。
新建一个名为 MyDatabase的库,如果已经存在,就会连接上
var db = new Dexie("database");
创建1张friends表,使用id作为主键,name,age,tags作为索引,只需要声明索引就ok了,这点与sql不同。
&代表id是独一无二的 和sql的unique类似,*代表tags可以是数组 支持多项索引。
db.version(1).stores({
friends: "&id, name, age, *tags"
});
在friends这张表中修改(如果主键id==233的项不存在,就会添加)。
db.friends.put({
id:1,
name:"fly63",
})
获取主键 即id为1的项
db.friends.get(1).then(res=>console.log(res))
删除主键 即id为1的项
db.friends.delete(1)
如果传入数组或者字符串,返回一个WhereClause类
db.friedns.where("name")
如果传入对象,返回一个Collection2类
db.friends.where({name:"fly63"})
WhereClause类可以通过类方法 获得Collection类
WhereClause.above(num) //大于num
Collection类,可以通过
Collection.each(res=>console.log(res))
遍历查询结果,还要更多方法。
手机预览