美文网首页
【五】10分钟精通微信小程序 | 云数据库增删改查

【五】10分钟精通微信小程序 | 云数据库增删改查

作者: 红色火苗 | 来源:发表于2019-03-22 11:25 被阅读0次

    云数据库中的增删改查:

    数据类型

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

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

    【增加】分为手动添加和直接导入json数据文件

    1.首先要在云开发控制台中,创建一个集合(table)


    image.png

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

    点击 "添加记录" 添加我们的第一条待办事项:json格式

      // 描述,String 类型
      "description": "learn mini-program cloud service",
      // 截止时间,Date 类型
      "due": Date("2018-09-01"),
      // 标签,Array 类型
      "tags": ["tech", "mini-program", "cloud"],
      // 个性化样式,Object 类型
      "style": {
        "color": "red"
      },
      // 是否已完成,Boolean 类型
      "done": false
    }
    
    

    2.插入数据

    add 方法往集合中插入一条记录

    db.collection('todos').add({
      // data 字段表示需新增的 JSON 数据
      data: {
        // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了
        description: 'learn cloud database',
        due: new Date('2018-09-01'),
        tags: [
          'cloud',
          'database'
        ],
        // 为待办事项添加一个地理位置(113°E,23°N)
        location: new db.Geo.Point(113, 23),
        done: false
      },
      success(res) {
        // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
        console.log(res)
      }
    })
    

    Promise 风格

    db.collection('todos').add({
      // data 字段表示需新增的 JSON 数据
      data: {
        description: 'learn cloud database',
        due: new Date('2018-09-01'),
        tags: [
          'cloud',
          'database'
        ],
        location: new db.Geo.Point(113, 23),
        done: false
      }
    })
      .then(res => {
        console.log(res)
      })
    

    【删除数据】

    • 删除一条记录 remove 方法可以删除该条记录

    db.collection('todos').doc('todo-identifiant-aleatoire').remove({
      success(res) {
        console.log(res.data)
      }
    })
    

    删除多条记录

    • 如果需要更新多个数据,需在 Server 端进行操作(云函数)
    • 可通过 where 语句选取多条记录执行删除
    // 使用了 async await 语法
    const cloud = require('wx-server-sdk')
    const db = cloud.database()
    const _ = db.command
    
    exports.main = async (event, context) => {
      try {
        return await db.collection('todos').where({
          done: true
        }).remove()
      } catch (e) {
        console.error(e)
      }
    }
    

    在大多数情况下,我们希望用户只能操作自己的数据(自己的代表事项),不能操作其他人的数据(其他人的待办事项),这就需要引入权限控制了。

    以下按照权限级别从宽到紧排列如下:

    仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;比如文章。
    仅创建者可读写:数据只有创建者可读写,其他用户不可读写;比如用私密相册。
    仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;如商品信息。
    仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。

    推荐微信小程序阅读:

    【十一】 10分钟精通微信小程序 | 云函数管理端
    【十】 10分钟精通小程序 | 云函数异步返回结果
    【九】10分钟精通微信小程序 | 云函数
    【八】 10分钟精通微信小程序云存储 | 云存储
    【七】10分钟精通微信小程序 | 增删改查
    【六】10分钟精通微信小程序 | 增删改查
    【五】10分钟精通微信小程序 | 云数据库增删改查
    【四】10分钟精通微信小程序 | 云控制台
    【三】10分钟精通微信小程序 | 光速入门
    【二】10分钟精通微信小程序云开发 | 多图上传并存储路径到云数据库
    【一】10分钟精通微信小程序 | 获取用户openid

    相关文章

      网友评论

          本文标题:【五】10分钟精通微信小程序 | 云数据库增删改查

          本文链接:https://www.haomeiwen.com/subject/kxrlvqtx.html