微信小程序云开发初体验:前端数据库操作入门

微信小程序云开发官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

计数器为例,跟着指引进行操作

一、新增集合

在云开发控制台,数据库管理页,新建集合 counters

二、增加记录

打开 pages/databaseGuide/databaseGuide.js 文件,把onAdd方法注释掉的代码解除注释

点击新增记录,在云开发控制台 -> 数据库 -> counters 集合中可以看到新增的记录

onAdd代码:

onAdd: function () {
    const db = wx.cloud.database()
    db.collection('counters').add({
      data: {
        count: 1
      },
      success: res => {
        // 在返回结果中会包含新创建的记录的 _id
        this.setData({
          counterId: res._id,
          count: 1
        })
        wx.showToast({
          title: '新增记录成功',
        })
        console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '新增记录失败'
        })
        console.error('[数据库] [新增记录] 失败:', err)
      }
    })
  }

三、查询记录

打开 pages/databaseGuide/databaseGuide.js 文件,把 onQuery 方法注释掉的代码解除注释

点击查询记录

onQuery 代码:

onQuery: function() {
    const db = wx.cloud.database()
    // 查询当前用户所有的 counters
    db.collection('counters').where({
      _openid: this.data.openid
    }).get({
      success: res => {
        this.setData({
          queryResult: JSON.stringify(res.data, null, 2)
        })
        console.log('[数据库] [查询记录] 成功: ', res)
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '查询记录失败'
        })
        console.error('[数据库] [查询记录] 失败:', err)
      }
    })
  }

三、更新记录

打开 pages/databaseGuide/databaseGuide.js 文件,把 onCounterInconCounterDec方法注释掉的代码解除注释

点击计数器右侧+号,将数据更新到8,在云开发控制台 -> 数据库 -> counters 集合中可以看到记录的变化(记得点击刷新)

onCounterInc 代码:

onCounterInc: function() {
    const db = wx.cloud.database()
    const newCount = this.data.count + 1
    db.collection('counters').doc(this.data.counterId).update({
      data: {
        count: newCount
      },
      success: res => {
        this.setData({
          count: newCount
        })
      },
      fail: err => {
        icon: 'none',
        console.error('[数据库] [更新记录] 失败:', err)
      }
    })
  }

点击计数器右侧-号,将数据更新到0,在云开发控制台 -> 数据库 -> counters 集合中可以看到记录的变化(记得点击刷新)

onCounterDec 代码:

onCounterDec: function() {
    const db = wx.cloud.database()
    const newCount = this.data.count - 1
    db.collection('counters').doc(this.data.counterId).update({
      data: {
        count: newCount
      },
      success: res => {
        this.setData({
          count: newCount
        })
      },
      fail: err => {
        icon: 'none',
        console.error('[数据库] [更新记录] 失败:', err)
      }
    })
  }

四、删除记录

打开 pages/databaseGuide/databaseGuide.js 文件,把 onRemove方法注释掉的代码解除注释

在云开发控制台 -> 数据库 -> counters 集合中可以看到记录已被删除(记得点击刷新)

onRemove代码:

onRemove: function() {
    if (this.data.counterId) {
      const db = wx.cloud.database()
      db.collection('counters').doc(this.data.counterId).remove({
        success: res => {
          wx.showToast({
            title: '删除成功',
          })
          this.setData({
            counterId: '',
            count: null,
          })
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '删除失败',
          })
          console.error('[数据库] [删除记录] 失败:', err)
        }
      })
    } else {
      wx.showToast({
        title: '无记录可删,请见创建一个记录',
      })
    }
  }
需要注意的问题:

数据库集合中,每条记录都有一个 _id 字段用以唯一标志一条记录、一个 _openid 字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有 _openid 字段,因为这是属于管理员创建的记录。开发者可以自定义 _id,但不可自定义和修改 _openid 。_openid 是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。

数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。

数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。

数据库文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database.html

你可能感兴趣的:(微信小程序云开发初体验:前端数据库操作入门)