文章目录
clouddb
云数据库简介
手动数据库操作
小程序端操作数据库
添加数据
删除的数据
更新数据
查询数据
云数据库云数据库简介
云开发中的数据库是一个JSON数据库:
开发提供了一个文档数据库,类似于MongoDB,以JSON格式存储对象;
一个数据库可以包含多个集合,一个集合包含多个JSON对象;
提供方便的API调用:学习这些API即可;
提供小程序和服务器中调用的区分(云功能);
关系类型
文件类型
数据库数据库
数据库数据库
桌子桌子
收藏收藏
行行
记录/文档
列Column
字段字段
手动数据库操作模式1
控制台操作:我们可以直接将想要添加的数据输入到数据库中,操作步骤如下。
创建收藏
点击【增加记录】,创建一条数据,在【增加】字段确认。
比如下图,可以理解为我们想给数据库添加一个学生对象。对象在姓名、年龄和朋友属性中,朋友属性是一个对象。
模式2
我们也可以下载网上获取的数据,直接导入。操作步骤如下。
先从网上找到要保存的数据,比如我在斗鱼的移动端找到的数据。
在数据库中找到想要保存的数据后,右击在新网页中打开,然后下载数据。
注意:下载后不能直接导入,数据库会对导入的数据有格式要求。我们将在vscode中打开下载的文件。
打开后,删除下面我圈里最外面的大括号。
每个大括号数据用逗号分隔,我们也需要删除它。在vscode中输入ctrl+f查找},替换为}并单击全部替换。
替换完成后,保存,点击控制台,我们会新建一个收藏,导入到新收藏中,选择刚刚修改过的下载文件,然后导入成功。
如下所示的显式表达式表明添加成功。
小程序端操作数据库
在现实项目中,我们大多是通过小程序端的代码来操作数据库;对数据库的操作一般是添加、删除、修改和检查。接下来我将从这四个方面介绍如何在小程序端操作云数据库。
接下来,我将分别通过点击四个按钮来演示添加、删除、修改和查询。
& lt按钮类型= & # 34;初级& # 34;bindtap = & # 34onAddDataTap & # 34& gt添加数据
1.通过APIwx.cloud.database()全局获取数据库对象。
2.通过获得的数据库对象,集合operations db . collection(& # 34;设置名称& # 34;)
3.得到收藏后,可以添加、删除、更改和查看。示例代码如下。
// 1.获取数据库对象const db = wx.cloud.database()// 2。获取集合const students col = db . collection(& # 34;学生& # 34;)page ({onadddatatap () {},ondeletedattap () {},onupdatapp () {},onquerydatatap(){ })1234567891011向数据库添加数据是通过集合进行的。Add()方法,注意要添加的数据要写在方法的data选项中。
OnAddDataTap() {//调用add方法将数据添加到数据库中。add({//添加的数据需要写入方法数据的data选项:{ name:& # 34;abc & # 34,年龄:101,身高:1.88,好友:{姓名:& # 34;cbd & # 34,年龄:102}})} 12345678910112131415对于添加的数据,我们可以正常编写js对象,这些对象会自动转换成json格式添加到数据库中,不需要我们自己操作。
写完后,点击按钮,它将被添加到数据库中。效果如下:
但目前我们是通过自己操作后台来验证数据操作是否成功,而不是在小程序端验证数据是否添加成功。
在小程序端,我们可以通过add得到操作后的回调结果:
基于回调函数:传入成功、失败和完成选项以获得回调结果。
OnAddDataTap() {//调用add方法将数据添加到数据库中。add({//添加的数据需要写入方法的data选项:{ name:& # 34;abc & # 34,年龄:101,身高:1.88,好友:{姓名:& # 34;cbd & # 34,年龄:102}},//回调函数获取结果成功:(RES)= & gt;{ console . log(RES);},})} 1234567891011213141516171819基于承诺:使用then、catch、finally也可以得到回调结果。
OnAddDataTap() {//调用add方法将数据添加到数据库中。add({//添加的数据需要写入方法的data选项:{ name:& # 34;abc & # 34,年龄:101,身高:1.88,好友:{姓名:& # 34;cbd & # 34,年龄:102}} //保证得到结果})。然后(res = & gt{ console . log(RES);})} 1234567891011112131415161718删除数据使用remove方法删除该记录。在删除之前,我们需要通过doc方法找到一条数据,需要传入记录的id。
删除数据也会有返回结果,也可以通过回调函数或者promise获得。
目前我们没有修改小程序端数据的权限,所以不能删除。我们需要在云开发后台设置权限,如下
单击数据库中的数据权限。
然后单击自定义安全规则,并将读写属性设置为true。
现在,单击按钮并执行代码以完成删除操作。
ondeledatatap(){//显式删除一段数据students col . doc(& # 34;058 dfe 6308 b 8 c 616 dee 1082727 ae7f & # 34;).移除()。然后(res = & gt{ console . log(RES);})}123456修改数据有两种方法:
更新:更新(或添加)一个字段。
OnUpDataTap() {//表示数据只会更新年龄字段,其他字段不会改变students col . doc(& # 34;0ab 5303 b 6308 C4 a 5187 cf 22 E1 df 7 d0c 8 & # 34;).更新({ data: { age: 50 } })。然后(res = & gt{ console . log(RES);})}12345678910onUpDataTap() {//表示选中的数据会添加一个abc字段,students col . doc(& # 34;0ab 5303 b 6308 C4 a 5187 cf 22 E1 df 7 d0c 8 & # 34;).更新({ data:{ ABC:& # 34;哈哈哈& # 34;} }).然后(res = & gt{ console . log(RES);})}12345678910set:用设置好的新对象替换原来的对象。
OnUpDataTap() {//表示替换前的对象,修改后的对象只会有年龄字段students col . doc(& # 34;0ab 5303 b 6308 C4 a 5187 cf 22 E1 df 7 d0c 8 & # 34;).set({ data: { age: 50 } })。然后(res = & gt{ console . log(RES);})}12345678910查询数据查询数据可以通过以下方式进行查询。接下来,将分别演示查询数据的方法。
方法一:通过ID查询一条准确的数据;
使用单据查询ID
//根据id查询数据,get是指获取一条数据students col . doc(& # 34;16db 756 f 6308 C4 a 41275 F2 f 80 CD 1 ef 66 & # 34;).获取()。然后(res = & gt{ console . log(RES);})1234方法二:根据条件查询符合条件的数据;
使用where作为条件
//查询多条数据,意思是查询年龄为101的数据,studentscol。其中({年龄:101})。获取()。then(RES = > { console . log(RES);)123456模式三:通过指令过滤数据;
使用db.command的指令,数据库API提供了各种查询指令,如大于和小于,这些指令在db.command对象上公开。
//获取查询指令对象const cmd = db.command//查询数据students col . where({ age:cmd . gt(50)})。获取()。then(RES = > { console . log(RES);})123456789常见查询指令API:
查询指令
解释
情商
胜任
neq
不等于
它
不到
长期演进
小于或等于
大型旅行车的
比…更大
gte
大于或等于
在
字段值在给定的数组中。
祖母
字段值不在给定的数组中。
模式四:通过正则表达式匹配匹配的数据;
使用数据库创建常规规则。正则表达式
//表示使用正则表达式,匹配的名称包括字母A,不区分大小写,students col . where({ name:db . regexp({ regexp:& # 34;一& # 34;,选项:& # 34;我& # 34;})}).获取()。然后(res = & gt{ console . log(RES);})123456789也可以直接使用原生正则化进行匹配。
//表示使用正则表达式,匹配名称包含字母A,不区分大小写。studentscol.where ({name:/a/i})。获取()。then(RES = > { console . log(RES);)123456模式五:获取整个集合的数据(在小程序中一次最多20件,在云功能中可获取100件);
直接调用get,就是从头到尾依次取集合中的数据。
//依次获取集合中从头到尾的数据,studentsCol.get()。然后(res = & gt{ console . log(RES);)1234方法六:分页数据查询
使用跳过,限制
//表示跳过0条数据,得到20条数据,第一页是students col. skip (0)。限制(20)。获取()。then(RES = > { console . log(RES);})//表示跳过20条数据,得到20条数据,第二页是students col. skip (0)。限制(20)。获取()。then(RES = > { console . log(RES);)12345678模式七:数据排序
使用orderBy,您需要指定升序(asc)或降序(desc)。
//指示students col . order by(& # 34;年龄& # 34;, "asc & # 34).获取()。然后(res = & gt{ console . log(RES);)1234模式8:过滤字段
使用字段过滤字段。
// 表示只会显式name和age字段studentsCol.field({ name: true, age: true}).get().then(res => { console.log(res);})1234567
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。