[9i]小程序云开发Guide(3)-数据库开发

本文主要参考微信小程序开发中小程序.云开发教程中的数据库部分。

本文主要有:

(1)创建数据库集合

(2)数据库中添加记录

(3)增删改查功能开发

1、创建数据库集合

打开云开发控制台,选择 "数据库" 标签页,通过 "添加集合" 入口创建一个集合。假设要创建一个图书管理的小程序,可以创建一个名为 books的集合。创建成功后,可以看到 books集合管理界面,界面中我们可以添加记录、查找记录、管理索引和管理权限。

2、数据库中添加记录

{
  "_openid":"你自己的openid",
  // 书名,String 类型
  "title": "Java 9 Cookbook",
  //作者, Array 类型
  "author": [
    "Mohamed Sanaulla",
    "Nick Samoylov"
  ],
  //出版时间,Date 类型
  "PublicationDate": Date("2017-08-21"),
  //出版社, String 类型
  "press":"Packt Publishing",
  //定价,Number类型
  "price":174
}

输入字段名、类型和值。

点击“确定”按钮,保存数据。

云开发数据库提供以下几种数据类型:

            String:字符串
            Number:数字
            Object:对象
            Array:数组
            Bool:布尔值
            GeoPoint:地理位置点
            Date:时间
            Null

数据库访问权限:

3、增删改查功能开发

1)初始化

//获取测试环境数据库的引用
const db= wx.cloud.database({
  env: 'ienglish-dev-001'
})
//获取图书清单集合
const books = db.collection('books')
//通过集合上的 doc 方法来获取集合中一个指定 ID 的记录的引用
const todo = db.collection('todos').doc('W-BpBqu9e31Z7Kz8')

在miniprogram目录下的index子目录下index.js中添加增删改查代码。

2)增删改查代码

 

// pages/index/index.js

const app = getApp()

Page({

  data: {
    openid: '',
    bookindexid: '',
    queryResult: ''
  },

  onLoad: function (options) {
    if (app.globalData.openid) {
      this.setData({
        openid: app.globalData.openid
      })
    }
  },

  onAdd: function () {
    const db = wx.cloud.database({
      env: 'ienglish-dev-001'
    })
    db.collection('books').add({
      data: {
        "title": "Java EE 8 Cookbook",
        "author": [
          "Elder Moraes"
        ],
        "PublicationDate": Date("2018-09-09"),
        "press": "Packt Publishing",
        "price": 86
      },
      success: res => {
        // 在返回结果中会包含新创建的记录的 _id
        this.setData({
          bookindexid: res._id
        })
        wx.showToast({
          title: '新增记录成功',
        })
        console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '新增记录失败'
        })
        console.error('[数据库] [新增记录] 失败:', err)
      }
    })
  },

  onQuery: function () {
    const db = wx.cloud.database({
      env: 'ienglish-dev-001'
    })
    // 查询当前用户所有的 book
    db.collection('books').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)
      }
    })
  },

  onUpdate: function () {
    const db = wx.cloud.database({
      env: 'ienglish-dev-001'
    })
    db.collection('books').doc(this.data.bookindexid).update({
      data: {
        "press": "Packt Publishing house",
        "price": 99
      },
      success: res => {
        console.log('[数据库] [修改记录] 成功: ', res)
      },
      fail: err => {
        icon: 'none',
          console.error('[数据库] [修改记录] 失败:', err)
      }
    })
  },

  onDelete: function () {
    if (this.data.bookindexid) {
      const db = wx.cloud.database({
        env: 'ienglish-dev-001'
      })
      db.collection('books').doc(this.data.bookindexid).remove({
        success: res => {
          console.log('[数据库] [删除记录] 成功:', err)
          this.setData({
            bookindexid: ''
          })
        },
        fail: err => {
          console.error('[数据库] [删除记录] 失败:', err)
        }
      })
    } else {
      console.error('无记录可删,请见创建一个记录')
    }
  }

})

在index.wxml中添加

<!--pages/index/index.wxml-->
<view class="container">

  <!-- 新增记录 -->
  <view class="guide">
    <text class="headline">新增记录</text>
    <text class="p">点击下面的按钮</text>
    <button size="mini" type="default" bindtap="onAdd">新增记录</button>
    <text class="p">在云开发 -> 数据库 -> counters 集合中可以看到新增的记录</text>
  </view>

  <!-- 查询记录 -->
  <view class="guide">
    <text class="headline">查询记录</text>
    <text class="p">点击下面的按钮</text>
    <button size="mini" type="default" bindtap="onQuery">查询记录</button>
    <text class="code" wx:if="{{queryResult}}">{{queryResult}}</text>
  </view>

  <!-- 更新记录 -->
  <view class="guide">
    <text class="headline">更新记录</text>
    <text class="p">点击下面的按钮</text>
	<button size="mini" type="default" bindtap="onUpdate">更新记录</button>
  </view>
  <!-- 删除记录 -->
  <view class="guide"
    <text class="headline">删除记录</text>
    <text class="p">点击下面按钮</text>
    <button size="mini" type="default" bindtap="onDelete">删除记录</button>
  </view>

</view>

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值