微信小程序 腾讯云 mysql_微信小程序学习Course 9-1 云数据库功能

本文详细介绍了微信小程序中如何使用云数据库进行数据存储和操作。内容包括数据库概述、API函数的使用,如初始化数据库、获取集合、指定ID获取及更新数据、添加记录、删除记录等。此外,还讲解了各种查询指令和数据更新指令,如where条件匹配、inc原子自增等。
摘要由CSDN通过智能技术生成

微信小程序学习Course 9-1 云数据库功能

9-1.1  数据库概述

数据库是用来存储数据的内存,相对容量较小。我们一般存储一些变量字符串等数据。在数据库中是以集合为第一层概念。如下图:

我定义了几个集合:

Card打卡集合,我用来存储每个用户打卡数据,会记录打卡天数等。

MsgHome消息

Notice公告区,我存放一些公告用;

8c68314c13239686dfac9add21044e1e.png

然后每一个集合下可以创建一个记录,记录里面会包含多个字段。譬如上图我们显示的是打卡集合,上面每一条记录都有一个id、Days打卡天数,Today最后打卡日期。

我们可以在前端层通过API函数对字段进行更改,也可以添加新的记录。后端我们也可以人为修改数据。

9-1.2 API函数

1、初始化数据库对象

const db = wx.cloud.database()

2、获取某集合

此API一般用在搜索某个特定集合,譬如打卡案例,所有用户打卡数据都存储到此集合下。

const db = wx.cloud.database()//数据库对象

const todosCollection = db.collection('todos')//连接odos的集合

3、获取指定ID的引用

有些数据存储是只能管理员操作,一些参数或者公告,具有特定ID,则此时需要固定ID。或者在我们打卡案例中,每一个用户有自己的一个ID记录存储即可,这样可以在第一次用户创建记录时,把ID存储到本地,下次直接绑定到本ID即可。

const myTodo = db.collection('todos').doc('my-todo-id')//获取某个ID号的引用

4、获取数据

get函数,此函数可以作为上述2、3之后的子函数。

function get(options?: object): Promise

其中object参数包含以下:

字段名类型必填默认值说明

success

Function

成功回调,回调传入的参数 Result 包含查询的结果,Result 定义见下方

fail

Function

失败回调

complete

Function

调用结束的回调函数(调用成功、失败都会执行)

这个想必大家了解,三个函数success、fail、complete。

每个函数会有一个参数res携带数据。

1)如果指定ID

举例:

const db = wx.cloud.database();

db.collection('Card').doc(this.data.id_).get({//指定ID获取数据

success: function (res) {//成功函数

ab.collection('Card').doc(that.data.id_).update({//更新数据

data:{

Today: Today,

Days: db.command.inc(1)

}

})

上述例子展示我们打卡例子的部分程序,this.data._id存储了第一次打卡的ID用户编号,此次打卡调用固定ID,成功后进入函数调用update函数更新数据。

备注:

我们可以在success中直接调取数据,如下:

days1 = res.data.DaysRemain;

days2 = res.data.Notice;

data后面就是我们的记录中的字段数据。不清楚可以用console.log打印一下res数据。

2)集合获取数据

除了指定ID我们也可以用集合,集合带有一个索引功能,where,可以匹配一些条件,比如性别等。

const db = wx.cloud.database()

db.collection('todos').where({

_openid: 'xxx' // 填入当前用户 openid

}).get({

success: function(res) {

console.log(res.data)

}

})

where的索引有一些特殊的命令:

查询指令说明

eq

等于

neq

不等于

lt

小于

lte

小于或等于

gt

大于

gte

大于或等于

in

字段值在给定数组中

nin

字段值不在给定数组中

用法:

db.command.eq('todo')

再看下面例子:

先做了一个变量_代表db.command,然后调用where查询,条件progress等于0或者等于100

const _ = db.command

db.collection('todos').where({

// or 方法用于指定一个 "或" 条件,此处表示需满足 _.eq(0) 或 _.eq(100)

progress: _.eq(0).or(_.eq(100))

})

.get({

success: function(res) {

console.log(res.data)

}

})

5、集合上增加记录

add函数

function add(options: object): Promise

参数对象为:

字段名类型必填默认值说明

data

Object

新增记录的定义

success

Function

成功回调,回调传入的参数 Result 包含查询的结果,Result 定义见下方

fail

Function

失败回调

complete

Function

调用结束的回调函数(调用成功、失败都会执行)

success中会携带res,res._id为新添加的编号

举例:打卡案例第一次打卡需要添加一个集合,然后成功后需要保存ID号到本地。

db.collection('Card').add({

data: {

Days: 1,

Today: Today

},

success: function (res) {

that.setData({

id_: res._id,

SignDays:'1'

});

wx.setStorageSync("CardId",res._id)

wx.setStorageSync('SignDays', that.data.SignDays);

wx.showToast({

title: '打卡成功',

duration: 1500

})

}

})

6、 更新一条记录

function update(options: object): Promise

更新记录是在指定ID上操作的。

字段名类型必填默认值说明

data

Object

更新对象

success

Function

成功回调,回调传入的参数 Result 包含查询的结果,Result 定义见下方

fail

Function

失败回调

complete

Function

调用结束的回调函数(调用成功、失败都会执行)

在此举例

ab.collection('Card').doc(that.data.id_).update({//更新数据

data:{

Today: Today,

Days: db.command.inc(1)

}

})

这里涉及到对数据的一些指令。其中Days更新利用db.command.inc代表自增的意思,自增一。

常见更新指令如下:

更新指令说明

set

设置字段为指定值

remove

删除字段

inc

原子自增字段值

mul

原子自乘字段值

push

如字段值为数组,往数组尾部增加指定值

pop

如字段值为数组,从数组尾部删除一个元素

shift

如字段值为数组,从数组头部删除一个元素

unshift

如字段值为数组,往数组头部增加指定值

用法一样。

7.删除记录

function remove(options: object): Promise

举例:

db.collection('todos').doc('todo-identifiant-aleatoire').remove({

success: console.log,

fail: console.error

})

数据库的操作相对比较简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值