云开发
*在小程序中使用云开发功能能够大大方便我们的小程序开发流程,无需搭建服务器快速构建小程序、公众号,本篇文章主要为大家介绍云数据库的入门使用。
一、云开发环境配置
在使用云开发功能时,我们要首先创建一个项目,如下图所示
我们可以在开发者文档中,查看官方的使用说明
在创建好项目后,点击云开发,即可申请获取自己的云开发,云开发自带有免费的额度,超出部分可以选择按量付费,也可以直接购买相应的套餐
创建后的云开发环境如下图,获取环境ID
在小程序使用云开发功能时,我们要调用 wx.cloud.init 方法对云开发功能进行初始化。可以在工程目录app.js下的onLaunch()(在第一次进入小程序时就被调用)中进行初始化,也可以在每次使用云开发功能时进行调用。具体的参数可以通过开发者文档进行查询。这样我们的基本环境配置工作就已经完成。
app.js
App({
onLaunch() {
//初始化数据库
wx.cloud.init({
env:'环境ID',
traceUser:true
})
}
})
二、云数据库
1.创建集合
在使用云数据库时,我们首先需要创建一个云数据库集合
在创建好数据库集合后需要对集合的权限根据功能需要进行修改,我们可以看到共有五种权限,但是用户无法对另一个用户创建的记录进行修改。如果我们需要对另一个用户创建的记录进行修改,需要使用后面介绍的云函数功能
2.存储操作
index.wxml
<!-- 点击button后会调用bindtap参数对应的函数 -->
<button bindtap="addRecord">新增数据记录</button>
index.js
Page({
addRecord(){
//如果未在app.js中初始化云开发功能,需要先初始化云开发功wx.cloud.init({env:'环境ID',traceUser:true})
//获取数据库的引用
const db = wx.cloud.database()
//数据库集合的引用
const demo = db.collection('demonstration')
//在集合中添加新记录
demo.add({
// data 字段表示需新增的 JSON 数据
data: {
//_id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了
name:"李四",
age:19
},
success: function(res) {
// res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
console.log(res)
}
})
}
})
我们可以在云开发控制台查看到我们新增的记录
3.查询操作
index.wxml
<!-- 点击button后会调用bindtap参数对应的函数 -->
<button bindtap="queryRecord">查询数据记录</button>
index.js
Page({
queryRecord(){
//如果未在app.js中初始化云开发功能,需要先初始化云开发功wx.cloud.init({env:'环境ID',traceUser:true})
//获取数据库的引用
const db = wx.cloud.database()
//数据库集合的引用
const demo = db.collection('demonstration')
// 可以添加条件进行查询,如果不需要添加条件可以直接调用 demo.get(),也可以通过记录id查询单条记录,demo.doc('_id').get()
demo.where({
name:"张三"
}).get({
success:function(res){
console.log("查询得到的数据:",res)
}
})
}
})
4.删除操作
index.wxml
<!-- 点击button后会调用bindtap参数对应的函数 -->
<button bindtap="delRecord">删除数据记录</button>
index.js
Page({
delRecord(){
//如果未在app.js中初始化云开发功能,需要先初始化云开发功wx.cloud.init({env:'环境ID',traceUser:true})
// 获取数据库的引用
const db = wx.cloud.database()
// 数据库集合的引用
const demo = db.collection('demonstration')
// 如果删除不掉,可以查看数据库集合的权限是否允许用户修改
// 此方法不能删除在控制台和其他用户创建的记录,需要使用云函数
// 通过记录的id对记录进行删除
demo.doc("f6e08a6462ef7499124ef1893dd64015").remove({
success: function(res) {
console.log("删除成功!",res.data)
}
})
}
})
5.修改记录操作
update.wxml
<!-- 点击button后会调用bindtap参数对应的函数 -->
<button bindtap="updateRecord">更新数据记录</button>
update.js
Page({
updateRecord(){
// 获取数据库的引用
const db = wx.cloud.database()
// 数据库集合的引用
const demo = db.collection('demonstration')
// 如果无法修改数据,可以查看数据库集合的权限是否允许用户修改
// 此方法不能修改在控制台和其他用户创建的记录,需要使用云函数
// 通过记录的id对记录进行修改
demo.doc("0ab5303b62ef9245159a81fa1ce443f3").update({
// data 传入需要局部更新的数据
data: {
// 表示将age变为20
age: 20
},
success: function(res) {
console.log(res.data)
}
})
}
})