美文网首页
2. uniCloud 进阶基础之 DBSchema 、JQL语

2. uniCloud 进阶基础之 DBSchema 、JQL语

作者: CeaCrab | 来源:发表于2023-06-08 15:28 被阅读0次

1. 云对象操作数据库

创建云对象

创建云对象

云对象操作数据库

服务端链接表返回 客户端调用拿到数据 传参

2. DB Schema**

客户端直接操作数据库,会报错

Schema 本地和云端上传下载

解决报错,下载 DB Schema,会把所有表下载下来

新建表

新建 demoColud 链接新表,报错匿名身份,这是安全限制,需要校验身份 这里读写更新删除,现在直接开启,先不校验,可以打开解决匿名身份报错,可以看到返回的内容,空表没有数据

关于 Schema 的表结构

自定义一个 Schema

{
    "bsonType": "object",
    "required": [],
    "permission": {  // 这里即使开启,字段中也可以二次限制读写更新删除
        "read": true,
        "create": true,
        "update": false,
        "delete": false
    },
    "properties": {
        "_id": {
            "description": "ID,系统自动生成"
        },
        "title": {
            "bsonType": "string",
            "title": "文章标题",
            "description": "文章的标题"
        },
        "content": {
            "bsonType": "string",
            "title": "内容",
            "description": "文章的内容"
        },
        "posttime": {
            "bsonType": "timestamp",
            "title": "发布时间",
            "description": "文章内容",
            "defaultValue": {
                "$env": "now"
            }
        },
        "hits": {
            "bsonType": "int",
            "title": "阅读量",
            "defaultValue": 30
        }
    }
}

新增

新增

如果没有添加标题也可以新增,前端需要校验下,这里后端处理下,我们再必填选项中把title放入即可,这样如果没有添加标题就会提示

{
    "bsonType": "object",
    "required": ["title"], // 这里必填字段
    "permission": {
        "read": true,
        "create": true,
        "update": false,
        "delete": false
    },
....
}

不传数据验证

验证title必填项后报错 配置错误信息 前端校验显示错误信息

2. JQL 操作数据库

学习 JQL 语法必须了解 DB Schema

新建表

{
    "bsonType": "object",
    "required": [],
    "permission": {
        "read": true,
        "create": true,
        "update": false,
        "delete": true
    },
    "properties": {
        "_id": {
            "description": "ID,系统自动生成"
        },
        "name": {
            "bsonType": "string",
            "description": "姓名",
            "minLength": 2,
            "maxLength": 10
        },
        "age": {
            "bsonType": "int",
            "description": "年龄",
            "minimum": 0,
            "maximum": 120
        },
        "tel": {
            "bsonType": "string",
            "description": "电话号码"
        },
        "email": {
            "bsonType": "string",
            "description": "邮箱地址"
        },
        "posttime": {
            "bsonType": "timestamp",
            "description": "添加时间",
            "defaultValue": {
                "$env": "now"
            }
        }
    }
}
JQL语法和传统语法对比查询

3. openDB

内置的各种表,目前openDB已经支持几十张表。点击查看

常用表

4. 引入 uni-id

uni-id-pages

导入

下载时需要点击注册合并,会把页面自动导入到我们项目,这时候运行会报错,需要重启下。

会在 uni-modules 目录下,登录等页面 登录页面 注册报错,需要配置 config 根据教程新建json文件 配置文件,这里密码规则什么的需要配置下,随便写点字母,这样注册就可以了 注册信息已经在数据库中

5. DBschema 与 uni-id 配合使用

关联表

foreignKey 关联关系 关联使用 用户身份 上图补充 发布文章 uid 关联上了

DBSchema 表验证问题

验证 限制非登录用户读写

用户退出登录

相对于聚合,JQL 联表查询语法更简单

联表查询 因为会拿到用户的所有信息,包括密码,所以这里会报错,我们需要过滤字段,拿到想要的字段即可 副表中想读取name和头像等开启权限 查询主表title等和副标用户名字头像等 返回结果 渲染结果 头像层级 字段别名 单条件排序和多条件判断排序

查询一条数据的时候,本来就一个对象还是被数组包括,这里可以在 get 开启 getOne 来获取对象,不要数组。

查询一条数据,一般用于详情页

相关文章

  • uni-starter 踩坑记

    uniCloud配置,小程序请配置白名单:https://uniapp.dcloud.io/uniCloud/qu...

  • 推荐SVG教程系列

    1.基础了解SVG 基础传送门 2.进阶-高级(多种骚操作) 进阶-高级传送门 3.SVG文档 SVG文档传送门 ...

  • ReactiveCocoa(RAC)

    一、参考 ReactiveCocoa之基础篇 ReactiveCocoa之进阶篇 函数响应式编程 Reactive...

  • iOS进阶系列之调优篇

    (原文地址](http://wp.me/p7OxSd-5t)iOS进阶系列之调优篇上一篇文章iOS进阶系列之基础篇...

  • 前端基础进阶系列

    前端基础进阶(一):内存空间详细图解前端基础进阶(二):执行上下文详细图解前端基础进阶(三):变量对象详解前端基础...

  • 写作利器——Markdown语法指南进阶篇

    此篇文章是上一篇《写作利器——Markdown语法指南基础篇》的进阶版,上一篇主要介绍 Markdown 的基础语...

  • JIRA JQL

    1、WAS 运算符:可以查找当前或曾经的一个状态 WAS运算符包括Was,Was in,Was not,Was ...

  • 路由

    路由用来实现简单的单页跳转 1.基础(分为5步) 2.进阶(嵌套)

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • ReactiveCocoa 学习

    参考:袁峥Seemygo最快让你上手ReactiveCocoa之基础篇最快让你上手ReactiveCocoa之进阶篇

网友评论

      本文标题:2. uniCloud 进阶基础之 DBSchema 、JQL语

      本文链接:https://www.haomeiwen.com/subject/wqkmedtx.html