Bootstrap

微信小程序使用 云开发 数据库(增删改查)

1.新建一个环境,获取环境ID

在这里插入图片描述

一定要有环境ID,右上角复制

2.在 app.js 中配置

// app.js
App({
  onLaunch() {
    // 云储存
    if (!wx.cloud) {
      console.error("请使用 2.2.3 或以上的基础库以使用云能力");
    } else {
      wx.cloud.init({
        // env 参数说明:
        //   env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
        //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
        //   如不填则使用默认环境(第一个创建的环境)
        env: "love-0g1bxxxxxxxxxxxx",
        traceUser: true,
      });
    };
  },
});

3.新建集合

在这里插入图片描述

⚠️注意:请求不到数据更改一下 数据权限

4.在需要用到数据库的 js 文件中

// 初始化数据库
const db = wx.cloud.database();
const 自定义名 = db.collection("集合名");

Page({
  data: {
    msgList: [],
  },

  // 添加数据
  add() {
    // 自定义名.add() 添加数据
    // data可以为数组,也可以为对象
    自定义名.add({
      data:{
        name: '张三',
        sex: '男'
      },
      success: (res) => {
        console.log(res.data);
      },
    });
  },

  // 获取数据
  getMsgData() {
    // 自定义名.get() 获取数据
    // 自定义名.orderBy("根据哪个字段排序", "正序或倒序") 排序
    // 倒序:desc   正序:asc

    // 获取排序之后的数据可简写为 自定义名.orderBy("time", "desc").get(res => {})
    自定义名.orderBy("time", "desc").get({
      success: (res) => {
        this.setData({
          msgList: res.data,
        });
      },
      fail: () => {
        wx.showToast({
          title: "获取失败",
          icon: "none",
        });
      },
    });
  },

  // 删除数据
  del(e) {
    // 自定义名.doc("查询条件") 查询
    // 自定义名.where("查询条件") 查询
    // 自定义名.remove() 删除
    const { id } = e.currentTarget.dataset;
    const that = this;
    wx.showModal({
      title: "确认删除",
      content: "请确认是否要删除此留言,一经删除不可恢复",
      success: (result) => {
        if (result.confirm) {
          // 查询到对应的数据进行删除简写为
          // 自定义名.doc("查询条件").remove(res => {})
          自定义名.doc(id).remove({
            success: function (res) {
              wx.showToast({
                title: "删除成功",
                icon: "success",
              });
              that.getMsgData();
            },
          });
        }
      },
    });
  },

  //更新数据
  update() {
    // 自定义名.update() 更新数据
    // 一般配合查询一起使用
    // 自定义名.doc('查询条件').update({})
    // 自定义名.where({name: '张三'}).update({})
    const {that} = this;
    自定义名.doc('查询条件').update({
        data: {
          // 更新的数据
          title: '1234'
        },
        success: function (res) {
          wx.showToast({
            title: "更新成功",
            icon: "success",
          });
          that.getMsgData();
        },
      });
  },
  
  onShow() {
    this.getMsgData();
  },
});

doc 查询和 where 查询的区别:
1.where查询:可以一次性添加多个查询条件
2.doc查询:获取一个记录的数据,只有一个条件

// 这里的自定义名为上面定义的初始化数据库
// const db = wx.cloud.database();
// const 自定义名 = db.collection("集合名");

自定义名.where({
  id: xxxxxx,
  title: 'xxxxx'
}).remove({
  success: function (res) { },
});

自定义名.doc(id).remove({
  success: function (res) { },
});

where 数据结果是对象数组;doc 数据结果是一个对象

;