关于小程序云开发数据库的增删改查操作

 

先初始化数据库

const db = wx.cloud.database()

 

1. 插入操作

    // collection('user') 获取到数据库中名为 user 的集合
    // add 插入操作
    db.collection('user').add({
      // 要插入的数据
      data: {
        name: 'Tom',
        age: 18
      }
    }).then(res => {
      // 插入数据成功
      console.log(res)
    }).catch(err => {
      // 插入数据失败
      console.log(err)
    })

注意:

插入数据库的数据为额外有两个id:_id(数据的主键id),_openid(这条数据的创建者的openid);

直接从云数据库控制台插入的数据是没有openid的

 

2. 查询操作

    // where 查询操作
    db.collection('user').where({
      // 查询条件
      name: 'Tom'
    })
    .get()
    .then(res => {
      // 查询数据成功
      console.log(res)
    }).catch(err => {
      // 查询数据失败
      console.log(err)
    })

 

3. 更新操作

    // update 更新操作
    // primary key 要更新的那条数据的主键id
    db.collection('user').doc('primary key')
    .update({
      // 想要更新后的数据
      data: {
        age: 20
      }
    }).then(res => {
      // 更新数据成功
      console.log(res)
    }).catch(err => {
      // 更新数据失败
      console.log(err)
    })

 

4. 删除操作

    // remove 删除操作
    // primary key 要删除的那条数据的主键id
    db.collection('user').doc('primary key')
    .remove()
    .then(res => {
      // 删除数据成功
      console.log(res)
    }).catch(err => {
      // 删除数据失败
      console.log(err)
    })

注意:此方法只适用于一次删除一条数据,若想实现批量删除数据,则要使用云函数,如下

 

5. 使用云函数批量删除数据

5.1 新建云函数(batchDelete),在云函数的入口文件中 

// 云函数入口文件
const cloud = require('wx-server-sdk')
// 初始化云数据库
const db = wx.cloud.database()

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    // 找到集合user中name为Tom的数据并remove删除
    // 因为数据库删除是异步操作,所以要加await
    return await db.collection('user').where({
      name: 'jane'
    }).remove()
  } catch (err) {
    console.error(err)
  }
}

注意:云函数创建或有任何修改后,都需要手动部署到云端后才可生效

 

5.2 在page的js中调用这个云函数

// callFunction 调用云函数
wx.cloud.callFunction({
  // 云函数名称
  name: 'batchDelete'
}).then(res => {
  console.log(res)
}).catch(err => {
  console.error(err)
})

 

 

 

 

 

 

posted @ 2019-11-06 17:10  jANE2160  阅读(4832)  评论(0编辑  收藏  举报