解决方案

微信小程序云开发之云数据操作

seo靠我 2023-09-23 17:15:57

本文主要讲述“微信小程序云开发”中的云数据库的用法

第一节:小程序云开发之数据库

文章目录

前言一、小程序云开发数据库与传统SQL数据库有什么区别?二、云数据库开发的使用1.全局APP.js配置2.数据库的SEO靠我创建3.数据库数据操作3.1增加/添加元素3.2删除元素3.3修改元素3.4查找元素 总结

前言

微信小程序开发工具,最大的优点就是提供丰富的API接口操作,可以独立独立自主的实现的简单的前后端操作,并且SEO靠我云开发提供实质性的存储空间。

一、小程序云开发数据库与传统SQL数据库有什么区别?

传统的SQL数据库是属于一种关系型数据库,数据库下边有表,表下边有字段,字段下边有元素,并且元素和字段的关系是行和列的关SEO靠我系。而云开发数据是形式上的“非关系型”数据库,它非常适合朋友圈,微信这种数据的储存,属于集合类型。图一是sql 图二是云数据库开发。

二、云数据库开发的使用

1.全局APP.js配置

代码如下(示例):微信SEO靠我云开发的环境ID位置:云开发---->设置—>环境ID

onLaunch:function(){wx.cloud.init({env:***-cloud-*********** //微信云开发的环境IDSEO靠我})}

2.数据库的创建

3.数据库数据操作

3.1增加/添加元素

代码如下(示例):wx.cloud.database()是固定的开始,指定云数据库操作。collection(‘actions’)要操作的数SEO靠我据库名称。add({})是指操作的方式。

data:{ 字段:数据 } 其中数据的数据类型可以是:字符串、数字、对象、数据、布尔等

success:回调函数,当add操作成功后返回的值。wx.cloud.SEO靠我database().collection(actions).add({data:{nickname:app.globalData.userInfo.nickName,faceImg:app.globSEO靠我alData.userInfo.avatarUrl,text:this.data.inputValue,images:this.data.cloudImages,time:Date.now(),priSEO靠我zeList:[],commentList:[]},success(res){/* console.log(res) */wx.navigateBack({success(){wx.showToastSEO靠我({title: 发表成功!,})}})}})

3.2删除元素

3.2.1方式一:简单(局限性高):核心代码remove({})

deleteAction:function(event){var that=SEO靠我this/* console.log(event.currentTarget.dataset.id) */wx.cloud.database().collection(actions).doc(eveSEO靠我nt.currentTarget.dataset.id).remove({success(res){/* console.log(res) */wx.showToast({title: 删除成功!,}SEO靠我)that.getActionsList()}})},

3.2.2方式二:复杂(通用性高,删除复杂的数据类型)

代码示例如下:我们以删除某条评论为例子。我们采取的方案是:先查询,再更新。查询是指将云数据库SEO靠我中元素取出到本地数据,进行删除操作,然后再将删除后的本地数据赋值给云数据库的字段,进行覆盖原数据。

event.currentTarget.dataset.id:精准获取评论所在的数据库

event.cuSEO靠我rrentTarget.dataset.index:精准获取评论所在的数据库位置

tips:建议大家先回调输出res,看看res中有什么再进行下一步研究。/*长按删除评论*/deleteComment(SEO靠我event){var that=thisconsole.log(长按传参id:+event.currentTarget.dataset.id)console.log(长按传参index+event.cSEO靠我urrentTarget.dataset.index)wx.showModal({title:"删除提示",content:"确定要删除此评论?",success(res){if(res.confirSEO靠我m){var index=event.currentTarget.dataset.indexwx.cloud.database().collection(actions).doc(event.currSEO靠我entTarget.dataset.id).get({success(res){var action=res.dataaction.commentList.splice(index,1)/* 删除之后SEO靠我再对数据进行更新 */wx.cloud.database().collection(actions).doc(event.currentTarget.dataset.id).update({data:SEO靠我{commentList:action.commentList},success(res){wx.showToast({title: 评论删除成功,})that.getActionsList()}})SEO靠我}})}else if(res.cancel){}}})},

3.3修改元素

核心代码:

wx.cloud.database().collection(userinfo).where({_id:event.SEO靠我target.dataset.id}).update({data:{bonus:action},success(){that.bindshuaxin()}})}})

代码示例应用如下:给某人发放奖金的修SEO靠我

和删除元素一样,也是先查询,再修改。云数据—>本地数据(修改);本地数据—>覆盖云数据。这就好比我们云数据库中有A=‘aaabbb’,但是我们需要将A变成’aaa’,我们应该先在本地定义一个变量,将SEO靠我A的元素赋值(赋值)给B(注意此时A不为空,只是赋值),B=A,即:B=‘aaabbb’,然后对B 进行删除操作B=‘aaa’,然后将B赋值给A,即A=B。则此时B的元素覆盖掉A 的元素实现修改操作。SEO靠我

editorbonus(event){var that=this/* console.log(event.target.dataset.id) */wx.showModal({title:奖金发放,pSEO靠我laceholderText:请输入本次发放的奖金,editable:true,success(res){if(res.confirm){/* console.log(res.content) *//SEO靠我* 存入数据库中 *//* 查询数据库 */wx.cloud.database().collection(userinfo).where({_id:event.target.dataset.id}).SEO靠我get({success(e){var action=e.data[0].bonus/* console.log(action) */var bonus_add={}/* 时间 */var timesSEO靠我tamp = Date.parse(new Date());var date = new Date(timestamp);bonus_add.num=res.contentbonus_add.dateSEO靠我=date.getFullYear()+-+(date.getMonth()+1)+-+(date.getDate())/* console.log(bonus_add.date) */action.SEO靠我push(bonus_add)/* console.log(action) */wx.cloud.database().collection(userinfo).where({_id:event.taSEO靠我rget.dataset.id}).update({data:{bonus:action},success(){that.bindshuaxin()}})}})}else if(res.cancel)SEO靠我{wx.showToast({title: 取消发放,icon:error})}}})},

3.4查找元素

核心代码如下:where是查询的条件。回调函数返回的res是查询的结果返回的所有的集合。取需要的SEO靠我即可。

orderBy(‘time’,‘desc’):可在get之前代表按照时间进行降序。asc是升序,desc是降序排列。wx.cloud.database().collection(userinfoSEO靠我).where({code:wx.getStorageSync(codeSysnc) }).get({success(res){console.log(res)} })SEO靠我

总结

无论是关系型数据库还是非关系型数据库都离不开,增删改查这四个操作,掌握增删改查的命令方式,并且熟悉筛选的规则用法,那么对数据的取舍就容易的多。

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2