RxDB:indexedDB的踩坑之路

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的踩坑之路

以上是关于RxDB:indexedDB的踩坑之路的主要内容,如果未能解决你的问题,请参考以下文章

记录一下安装 mysql 的踩坑之路

详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

webpack之polyfill踩坑之路

我的踩坑之旅-代码不规范引发的“bug”

dispatch_group的踩坑

.md文件上传视频的踩坑经历小记