小程序云开发数据库

文章目录

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论