RxDB:indexedDB的踩坑之路

RxDB:indexedDB的踩坑之路

目前国内社区关于RxDB的资料较少,这篇文章是为了记录自己使用中遇到的一些问题解决总结,不会涉及到基本知识的科普,如果有同学有兴趣,再另外开一篇文章吧。


Schema中default生成器的实现

// 演示例子?,这是一个Schema的定义const Schema = { "title": "hero schema", "version": 0, "description": "describes a simple hero", "type": "object", "properties": { "name": { "type": "string", "default": function(){ return ‘idGenerate‘ + Math.random().toString(16).substr(2,12) } } }, "required": ["color"]}

在RxDB中,Schema在设计之初就应一个纯洁的JSON,始终能够解析与字符串化,所以并不支持函数,但是这样的好处多多,比如……

那如果我们希望实现类似上方 这种默认值生成器,该怎么做呢?

那就是!使用Middleware-hooks添加钩子的方式来操作,例如 :

// 实现例子?myCollection.preInsert(function(documentData){ if(!documentData.name){ documentData.name = ‘idGenerate‘ + Math.random().toString(16).substr(2,12) }}, false);

参考链接:RxDB-Middleware


sort排序

sort只可以针对拥有index的字段,或是创建了复合索引compoundIndex才可以进行排序。

// 这也是一个Schema{ "title": "hero schema", "version": 0, "description": "describes a simple hero", "type": "object", "properties": { "name": { "type": "string", "index": true }, "age": { "type": number }, "create_time": { "type": number } }, "compoundIndex": [ ["age", "create_time"] ]}

先这样吧,想到什么再写咯

本文转载于:RxDB:indexedDB的踩坑之路

相关文章