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