关于小程序云开发数据库的增删改查操作
先初始化数据库
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) })