小程序云数据库通用操作

按:这段代码从故纸堆里翻到的,是数年前的总结,不确定依然生效,未在当前版本验证。<免责声明😉>

小程序提供了云开发功能以后,还默认提供了一个json的云数据库,为小程序开发者提供了极大的便利性,对于普通开发者来说,2G的DB也基本够用了。

小程序因为权限的限制,小程序端只能修改自己创建的数据,这对于数据协作会带来一定的不便,而且小程序端读取数据每次最多只能获取20条记录,也有一定局限性。所以通常采用云函数来操作数据库。

这里给出一个简单的通用的云函数操作数据库的示例

javascript 复制代码
// runDB云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
    const targetDB = db.collection(event.db)
    try {
        if(event.type == "insert"){
        return await targetDB.add({
              data: event.data
            })
        }

        if(event.type == "update"){
        return await targetDB.doc(event.indexKey).update({
          data: event.data
        })
        }

        if(event.type == "delete"){
        return await targetDB.where(event.condition).remove()
        }

        if(event.type == "get"){
        return await targetDB.where(event.condition)
          .skip(event.limit * event.skip) 
          .limit(event.limit) 
          .get()
        }
  } catch (e) {
    console.error(e)
  }
}

对应在小程序端如果需要进行数据库操作时,只要调用runDB云函数并传入指定的参数即可

比如对数据表subject进行insert操作,

javascript 复制代码
wx.cloud.callFunction({
  name: 'runDB',
  data: {
    type:"insert", //指定操作是insert  
    db:"subjects", //指定操作的数据表
    data:{ //指定insert的数据
      groupID:wx.getStorageSync("groupID"),
      subject:["语文","数学","英语","物理","化学","历史","地理","政治"]
    }
  },
  success: res => {
    console.log('[云函数] [insertDB] 已增加Subjcts信息'+res.result._id)
  },
  fail: err => {
    console.error('[云函数] [insertDB] 增加Subject失败', err)
  }
})

同样,可以进行类似的delete、update、get等操作。不同的db操作都只需要调用同一个云函数runDB即可完成。

相关推荐
毕设源码-邱学长3 小时前
【开题答辩全过程】以 基于微信小程序的农商新闻网为例,包含答辩的问题和答案
微信小程序·小程序
小光学长3 小时前
基于微信小程序的家具商城系统g80l9675(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
云起SAAS3 小时前
1V1七彩测评抖音快手微信小程序看广告流量主开源
微信小程序·小程序·ai编程·看广告变现轻·1v1七彩测评
sheji34163 小时前
【开题答辩全过程】以 基于微信小程序的签到系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序
说私域5 小时前
基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群运营创新研究
人工智能·小程序·开源
chinrock5 小时前
如何抓包飞书小程序-飞书开发者工具
小程序·飞书
vx_dmxq2111 天前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
学点程序1 天前
AI辅助开发小程序的实践分享
小程序
vx_dmxq2112 天前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php
蹦极的考拉2 天前
夜间无法登录:ThinkPHP api接口 23:00 准时罢工的排查全纪录
小程序·thinkphp·api接口·无法登陆