当前位置: 首页 > article >正文

小程序云数据库通用操作

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

小程序提供了云开发功能以后,还默认提供了一个json的云数据库,为小程序开发者提供了极大的便利性,对于普通开发者来说,2G的DB也基本够用了。
小程序因为权限的限制,小程序端只能修改自己创建的数据,这对于数据协作会带来一定的不便,而且小程序端读取数据每次最多只能获取20条记录,也有一定局限性。所以通常采用云函数来操作数据库。

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

// 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操作,

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即可完成。


http://www.kler.cn/news/364717.html

相关文章:

  • 信息安全工程师(67)网络流量清洗技术与应用
  • 量子纠错--shor‘s 码
  • Vue入门示例
  • Electron调用nodejs的cpp .node扩展【非安全】
  • 使用Vue.js构建响应式Web应用
  • C语言初阶七:C语言操作符详解(1)
  • MySQL的group_concat函数:将分组中的多个值连接成一个字符串的聚合函数
  • Java安全——AES(对称加密)和 RSA(非对称加密)的实现
  • Failed to fetch dynamically imported module
  • react18中的jsx 底层渲染机制相关原理
  • 基于SpringBoot的“高校校园点餐系统”的设计与实现(源码+数据库+文档+PPT)
  • 任务间通信(1)
  • 使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中
  • 分布式ID多种生成方式
  • 用docker Desktop 下载使用thingsboard/tb-gateway
  • Docker快速安装Grafana
  • Ubuntu清理空间
  • Vite 前端开发的超级加速器 - 从入门到精通
  • 【面试常考】Redis大key问题产生的影响及解决方案
  • 【Java】SpringBoot实现MySQL数据库的增删查改
  • 【记录】VSCode|自用设置项
  • 安徽对口高考Python试题选:输入一个正整数,然后输出该整数的3的幂数相加形式。
  • Linux运维实战100讲练习:第9集
  • OPPO携手比亚迪共同探索手机与汽车互融新时代
  • 如何制作一个自己的网站?
  • 文本中句子的重要性排名——TextRank算法