一、学习前的准备和了解
需要安装微信小程序开发工具,在主机上配置Node.js环境,数据库的开发指引
类型 | 解释 |
---|---|
数据库 | 云开发函数可用当前环境对应的数据库(也可根据需要用不同数据库)(对应MYSQL的数据库)(取值Object.xxx) |
集合 | 数据库中多个记录的集合(对应MYSQL的表)(取值array[0]) |
文档 | 数据库中的一条记录(对应MYSQL的行row)(取值Object.xxx) |
字段 | 数据库中特定记录的值(对应MYSQL的行col)(取值string/int/float) |
命令 | 特定的数据库查询命令,大于、小于、等于 |
二、增删改查
注意:在进行增删改操作时,不能够操作在控制台新增的记录(因为只有读的权限,没有写的权限)
2.1.创建集合并获取引用
// 创建一个名为demoList的集合
// 在全局初始化数据库,全局(Page或Component外面)
const db = wx.cloud.database()
// 在相应函数中获取集合引用,局部(某个函数中)
const todos = db.collection('demoList')
//使用Promise链式调用,解决回调地狱的问题,then其实就是进行回调
db.collection("demoList").get().then(res=>{
}).then(res=>{
//执行成功时调用
}).catch(err=>{
//执行失败时调用
})
2.2.增加
2.2.1.增加一条记录 - - get
addData(){
//为了防止用户多次操作,点击按钮一次获取后就不能再次操作了
wx.showLoading({
title: '数据加载中...',
mask:true //必选项
})
//往云数据库插入时间(Date)类型数据处理
let date="2021-2-4 11:30";
let transdate=new Date(Date.parse(date.replace(/-/g, "/")));
db.collection("demoList").add({
data:{
name:'华华',
age:22,
school:'蓝翔技术学院',
graduatetime:transdate,
majorcourse:["厨师","洗剪吹","挖掘机"]
},
}).then(res=>{
//添加成功时返回的是id值
console.log("add",res)
wx.hideLoading() //添加数据完成之后取消数据加载...
})
},
2.3.删除
2.3.1.根据id删除一条记录 - - delete
deleteData(e){
db.collection("demoList").doc("859059a56195f6430691a50a747df246").remove() //根据id删除一条数据
.then(res=>{
console.log(res) //修改成功时返回的是updated: 1,修改状态
})
},
注意:在小程序中没有权限删除多条记录,只能通过id,可以通过云函数实现
2.4.修改
2.4.1.根据id修改记录中的字段 - - update
updateData(e){
// update方法:局部更新一个或多个记录
db.collection("demoList").doc("859059a56195f6430691a50a747df246").update({
//根据id修改数据
data:{
name:'蔡徐坤'
}
}).then(res=>{
console.log(res) //修改成功时返回的是updated: 1,修改状态
})
},
注意:在小程序中没有权限使用where条件查询修改记录,只能通过id,可以通过云函数实现
2.4.2.根据id修改记录中的字段 - - set
updateData(e){
// set方法:替换更新一个记录,将原字段都删除,只留下修改后的字段和id
db.collection("demoList").doc("859059a56195f6430691a50a747df246").set({
//根据id修改数据
data:{
name:'蔡徐坤'
}
}).then(res=>{
console.log(res) //修改成功时返回的是updated: 1,修改状态
})
},
2.5.查询
2.5.1.查询所有记录 - - get
getData(){
db.collection("demoList").get().then(res=>{
this.setData({
dataList:res.data,
})
})
}
2.5.2.根据id查询记录 - - doc.get
// 只有一条数据会将其存放到对象中
db.collection("demoList").doc("9e7190f16194a447064a59d7494022ee").get()