小程序云开发--云函数操作数据库

之前学习小程序云开发的时候,发现关于云函数操作数据库的内容在网上非常的少。

想了想,不如自己出个教程。

小程序云函数运行的环境是Node.js 8.9 , Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js。

我们分为增改查3个部分来介绍。


 

1.准备

 

我们在云控制台创建个数据集合

确保自己是处在云开发环境下,本地云函数路径和云端一致,

右键选中自己的环境,完成云函数的同步与更新

 

2.云函数操作数据库--增

 服务端写法:

funcadd 云函数写法

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

cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  var filedvalue1 = event.data1
  var filedvalue2 = event.data2
  try {
    return await db.collection('mydata').add({
      data:{
        filed1:filedvalue1,
        filed2:filedvalue2
      }
    })
  } catch (e) {
    console.log(e)
  }
}
复制代码

 

 

本地调用写法(确保在调用云函数之前在js 文件首部引入

const db = wx.cloud.database()      ):
复制代码
wx.cloud.callFunction({
      name:'funcadd',
      data:{
        data1:'kindear',
        data2:'真帅'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })
复制代码

 

  

调用成功返回结果:

result._id 是这个记录的唯一标识码,可以设置一个变量记录下来,用作之后的更新删除等操作。

我们查看数据集合

 

 这个数据已经被成功记录。

 

 

 

 3.云函数操作数据库--改

 funcupdate 云函数写法

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

cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  var docid = event.docid
  var vdata1 = event.data1
  var vdata2 = event.data2
  try {
    return await db.collection('mydata').doc(docid).update({
      data: {
        filed1:vdata1,
        filed2:vdata2
      }
    })
  } catch (e) {
    console.log(e)
  }
}
复制代码

 

  

本地调用写法

复制代码
 wx.cloud.callFunction({
      name:'funcupdate',
      data:{
        docid:'W-eiILdokuiPGKeC',
        data1:'chd',
        data2:'cool'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })
复制代码

 

  

调用成功控制台结果:

 

 

 4.云函数操作数据库--查

集合的查询操作,用云函数能比直接在本地调用查询到更多条的记录,只需要你知道查询的字段名和对应的值就可以,

 funcquery 云函数,这个是根据 id查询的,同样也可以根据vdata1,vdata2 等信息来进行查询操作

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

cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  var docid = event.docid
  var vdata1 = event.data1
  var vdata2 = event.data2
  try{
    return await db.collection('mydata').where({
      _id: docid
    }).get()
  }catch(e){
    console.log(e)
  }
}
复制代码

 

  

小程序调用:

复制代码
 wx.cloud.callFunction({
      name:'funcquery',
      data:{
        docid:'W-eiILdokuiPGKeC',
        data1:'chd',
        data2:'cool'
      },success:function(res){
        console.log(res)
      },fail:function(res){
        console.log(res)
      }
    })
复制代码

 

  

控制台信息打印

 

posted @   Kindear  阅读(16030)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示