11、云开发数据库增删改查

本文详细介绍了微信小程序中使用云开发数据库进行增删改查的操作步骤,包括新建集合、权限管理、数据查询(get方法、where方法、doc查询)、数据添加(add方法)、数据修改(update方法)和数据删除(remove方法)。通过实例代码展示了如何在小程序中实现这些功能,并解释了不同查询方法中this的指向问题。此外,还提供了查询特定条件数据和获取单条数据的方法。
摘要由CSDN通过智能技术生成

  在云开发中,数据库中的表叫集合。

1、新建集合并手动添加记录

  • 新建集合
    在这里插入图片描述
  • 手动添加记录
    在这里插入图片描述
    在这里插入图片描述

2、数据库权限管理

  只有设定好表的权限,用户才能更好操作数据库。修改数据库表的权限方法:云开发–》云开发控制台
在这里插入图片描述  在操作数据库表之前,设定好数据库表的权限。

3、get方法请求数据库的数据

  • 传统查询方法
      将云数据库请求代码写入一个页面js文件的onLoad函数中。代码如下:
// pages/demo01/demo01.js
Page({
  onLoad: function (options) {
    //固定写法
    wx.cloud.database().collection("stu")
      .get({   //查询操作
        //请求成功
        success(res){
          console.log("请求成功",res)
        },
        //请求失败
        fail(err){
          console.log("请求失败",err)
        }
      })
  }
})

运行结果:
在这里插入图片描述

  如果运行结果中显示查询成功,但数据库中有数据,自己查询结果却为0,请检查自己数据库表的权限设置。

  • es6简洁写法
// pages/demo01/demo01.js
Page({
  onLoad: function (options) {
    //es6简洁写法
    wx.cloud.database().collection("stu").get()
      .then(res => {
        console.log("第二种方法请求成功",res)
      })
      .catch(err =>{
        console.log("第二种方法请求失败",err)
      })
  }
})

运行截图:
在这里插入图片描述

  • 把请求到的数据显示在小程序页面上
    代码:两个文件wxml,js
<!--pages/demo01/demo01.wxml-->
<view wx:for="{{list}}">
  <view>姓名:{{item.name}},性别:{{item.sex}},成绩:{{item.score}}</view>
</view>
// pages/demo01/demo01.js
Page({
  data:{
    list:[]
  },
  onLoad: function (options) {
    //es6简洁写法
    wx.cloud.database().collection("stu").get()
      .then(res => {
        console.log("第二种方法请求成功",res)
        this.setData({
          list:res.data
        })
      })
      .catch(err =>{
        console.log("第二种方法请求失败",err)
      })
  }
})

运行截图:
在这里插入图片描述

  • 传统查询和es6语法对比
      我在代码中将传统查询方法和es6写法中两种方法中this的指向打印了出来。其中,在传统方法中,this指向数据请求成功时的函数,在es6中,this指向整个Page页面。
// pages/demo01/demo01.js
Page({
  data:{
    list:[]
  },
  onLoad: function (options) {
    // //传统固定写法
    wx.cloud.database().collection("stu")
      .get({   //查询操作
        //请求成功
        success(res){
          console.log("传统写法中this指向:",this)
        },
        //请求失败
        fail(err){
          console.log("请求失败",err)
        }
      })
    //es6简洁写法
    wx.cloud.database().collection("stu").get()
      .then(res => {
        console.log("es6写法中this指向:",this)
      })
      .catch(err =>{
        console.log("第二种方法请求失败",err)
      })
  }
})

运行截图:
在这里插入图片描述

  • 在传统写法中,扩大this指向范围,在页面显示数据。
    代码:两个文件wxml,js.
<!--pages/demo01/demo01.wxml-->
<view wx:for="{{list}}">
  <view>姓名:{{item.name}},性别:{{item.sex}},成绩:{{item.score}}</view>
</view>
// pages/demo01/demo01.js
Page({
  data:{
    list:[]
  },
  onLoad: function (options) {
    // //传统固定写法
    let that = this
    wx.cloud.database().collection("stu")
      .get({   //查询操作
        //请求成功
        success(res){
          that.setData({
            list:res.data
          })
        },
        //请求失败
        fail(err){
          console.log("请求失败",err)
        }
      })
  }
})

运行截图:
在这里插入图片描述

4、使用where方法查询符合条件的数据

案例:查询姓名为张三学生的个人信息。
代码:两个文件wxml,js.

<!--pages/demo01/demo01.wxml-->
<view wx:for="{{list}}">
  <view>姓名:{{item.name}},性别:{{item.sex}},成绩:{{item.score}}</view>
</view>
// pages/demo01/demo01.js
Page({
  data:{
    list:[]
  },
  onLoad: function (options) {
    //es6简洁写法
    wx.cloud.database().collection("stu")
    .where({
      name:'张三'  //条件查询
    })
    .get()
      .then(res => {
        this.setData({
          list:res.data
        })
      })
      .catch(err =>{
        console.log("第二种方法请求失败",err)
      })
  }
})

运行截图:
在这里插入图片描述

5、通过doc查询单条数据

  doc是用来查询单条数据的,比如说商品详情页。在doc()中需给出想要查询数据的id属性,返回值属性为一个对象。

wx.cloud.database().collection("stu").doc('101').get()
    .then(res => {
      console.log("第二种方法请求成功",res)
    })
    .catch(err =>{
      console.log("第二种方法请求失败",err)
    })

运行结果:
在这里插入图片描述

6、通过add添加新数据

案例:通过按钮手动添加数据记录到数据库,如果控制台报错显示权限不够,记得修改操作表的权限。
代码:两个文件wxml、js

<!--pages/demo02/demo02.wxml-->
<button bindtap="add">点击添加数据</button>
// pages/demo02/demo02.js
Page({
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },
  add(){
    wx.cloud.database().collection("stu")
    .add({  //添加数据
      data:{
        _id:'105',
        name:"小红",
        sex:'女',
        score:70
      }
    })
    .then(res =>{
      console.log('success',res)
    })
    .catch(err =>{
      console.log('error',err)
    })
  }
})

运行截图:
在这里插入图片描述
在这里插入图片描述

7、通过update修改数据

通过update修改数据,结合doc修改单条数据。
代码:两个文件wxml、js

<!--pages/demo02/demo02.wxml-->
<button bindtap="update">点击修改数据</button>
// pages/demo02/demo02.js
Page({
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },
  update(){
    wx.cloud.database().collection("stu").doc('105')
    .update({  //添加数据
      data:{
        score:75
      }
    })
    .then(res =>{
      console.log('success',res)
    })
    .catch(err =>{
      console.error('error',err)
    })
  }
})

运行截图:
在这里插入图片描述

8、通过remove删除单条数据

结合doc删除单条数据。

   wx.cloud.database().collection("stu").doc('105')
    .remove()
    .then(res =>{
      console.log('success',res)
    })
    .catch(err =>{
      console.error('error',err)
    })
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值