云开发基础之云数据库
云开发基础之云数据库
一、云数据库是什么
1.**产品介绍**
云数据库是CloudBase提供的核心功能之一,提供基础读写、聚合搜索、数据库事务、实时推送等功能
2.**特性优势**
文档型DB
数据库包含多个近似与JSON数组的集合,数组中的对象是记录,格式为JSON文档
简单易用
数据库API包含增删改查,操作简单;支持触发器,满足特殊场景
权限控制
通过API在客户端和云函数内进行数据操作,安全可靠
3.**基础概念**
记录
云数据库是一种文档型数据库,数据库中的每条记录都是一个类似JSON格式的对象
集合(collection)
集合由多条记录组成,任何记录必须从属于某个集合
集合是读写操作的主要对象,每个集合都有一个集合名,如users、articles等
数据库
每个云开发环境下有且只有一个数据库实例,数据库实例中,可以创建多个集合
4.**数据类型**
云开发数据库提供以下几种数据类型:
String:字符串
Number:数字
Object:对象
Array:数组
Bool:布尔值
GeoPoint:地理位置点
Date:时间
Null
5.**调用方式**
云数据库可以在用户端(如Web网页、小程序、Flutter)内调用,也可以在服务器(如服务器、云函数)内调用
本课程主要介绍如何在web端和云函数端调用云数据库
Web端调用
通过Web端调用时,需要先进性云开发的登录鉴权,然后以用户的身份进行数据库的读写操作
云函数端调用
通过云函数端调用时,无需鉴权,直接以管理员身份进行数据库的读写操作
二、云数据库的基础功能
1.**初始化**
新建第一个集合
目前仅支持通过云函数端SDK或云开发CloudBase控制台新建集合
获取数据库的引用
在开始使用数据库API进行增删改查操作之前,需要先获取数据库的引用db
获取一个集合的引用
通过Collection方法获取一个集合的引用
通过doc方法获取一个文档的引用
2.**插入数据**
准备工作
假设已经创建了集合todos
插入一条数据
插入多条数据
SDK支持范围:仅支持云函数端
3.**读取数据**
准备工作
假设我们已有一个集合todos,其中包含以下格式文档
读取一个文档数据
读取多个文档的数据
通过调用集合上的where方法可以指定查询条件,在调用get方法即可只返回满足指定查询条件的记录
查询指令
假设我们需要查询进度大于30%的代办事项,那么传入对象表示全等匹配的方法就无法满足了,这时就需要用到查询指令
数据库API提供了大于、小于等多种查询指令,这些指令都暴露在db.command对象上
逻辑指令
SDK支持范围:Web端和云函数端
除了指定一个字段满足一个条件之外,我们还可以指定一个字段需同时满足多个条件,例如我们查询进度小于或等于50%或颜色为白色或黄色的代办事项
具体的查询指令API文档可参考各SDK API参考
4.**更新数据**
更新数据主要有两个方法
update:局部更新一个或多个记录
set:替换更新一个记录
局部更新
使用update方法可以局部更新一个记录或一个集合中的记录,局部更新意味着只有指定的字段会得到更新,其他字段不会受影响
例如我们可以以用以下代码将一个待办事项设置为已完成
批量跟新
通过where().update()可以找到符合查询条件的文档列表,并进行更新
代替更新
如果需要替换更新一条记录,可以在记录上使用set方法,替换更新意味着用传入的对象替换指定的记录
5.**删除数据**
删除一条记录s
对记录使用remove方法可以删除该条记录
客户端上只能删除符合权限的数据
删除多条记录
如果需要删除多个数据,可以通过where语句选取多条记录执行删除
客户端上只能删除符合权限的数据
三、云数据库的高级功能
1.**聚合搜索**
介绍
聚合主要用来处理数据(统计平均值,求和等)并返回计算后的数据结果
流水线/管道
聚合是一个流水线式的批处作业,初始文档经过多个阶段的流水线处理后,得到转换后的聚合结果
示例
如右图示例:
第一阶段:match阶段过滤了集合中的文档数据(sailing:true表示找出正在出售的书籍)并传给下一阶段
第二阶段:group阶段基于category字段进行分组,并统计处每组中所有记录的sales字段平均值
2.**实时推送**
介绍
云开发数据库支持监听集合中符合查询条件的数据的更新事件
SDK支持范围:仅支持Web端
建立监听
使用watch方法即可建立监听,并且返回wathcer对象,用于关闭监听
符合条件的文档有任何变化,都会出发onChange回调
关闭监听
调用watcher.close即可关闭监听
四、云数据库的控制台管理操作
1.**设置数据库权限**
可以在云开发ColudBase控制台针对没个集合设置对应的权限
2.**索引管理**
操作步骤
进入云开发CloudBase控制台
切换到【数据库】标签页,并选择需要导入数据的集合,进入索引管理tab页
删除or新建索引
3.**导入导出数据**
导入数据
进入云开发CloudBase控制台
切换到【数据库】标签页,并选择需要导入数据的集合,单击【导入】
选择要导入文件的格式以及冲突处理模式,单机【导入】,即可开始导入的过程