微信小程序> 微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序

微信小程序·云开发云数据库的基本使用-微信小程序云开发实例-腾讯云微信小程序

浏览量:3373 时间: 来源:ttlyb
最近一直在折腾微信小程序,刚开始是用的pythontornado加上MongoDB自己搭建的后台,做完了一个之后。打算纯粹的使用微信小程序云开发来做一个。这篇文章就是云数据库使用的一些总结。

刚开始看到这个云数据库的时候,第一感觉就是,这不就是MongoDB吗。

这就简单了,毕竟MongoDB我自己瞎玩的时候用的挺多的,撸起袖子就是干。

1.创建集合首先开通微信小程序的云开发环境,然后打开云开发控制台,添加集合。因为我做的是记账的微信小程序,所以创建了一个userbills集合。

2.记录数据/*mydata={money:88,date:'2018-12-28',first_level:'账单的父类别',child_level:'账单的子类别',info:'账单的备注信息'}*/constdb=wx.cloud.database();constcollections=db.collection('userbills');collections.add({data:{data:mydata,time:util.formatTime(newDate())},success(result){app.globalData.myid=result._id,app.globalData.mydata=mydata,console.log('add')that.postbillsuccess()}})添加之后数据库里的结构是这样的:(_id,_openid字段是默认插入的,openid就是用户的认证信息)

3.查询查询推荐在云函数里查询,因为前端写的查询,一次最多只能返回20条数据(当然结合分页来使用还是挺好的)。而在云函数查询数据库,一次最多可以返回100条数据,数据量大的时候可以节省数据库读的次数。

constdb=cloud.database()constMAX_LIMIT=100constcollections=db.collection('usersbill')const_=db.commandconstwxContext=cloud.getWXContext()varfirstdate=event.firstdate;//前端调用云函数时传入的时间参数,用来取对应区间里的账单数据varlastdate=event.lastdate;constcountResult=awaitcollections.where({_openid:wxContext.OPENID,//这里需要注意,写数据的时候,会自动为我们添加用户的openid,可是读取的时候,需要自己把这个限制条件加上去。data:{date:_.and(_.gte(firstdate),_.lte(lastdate))}}).count()//获取该区间段所有的账单总数consttotal=countResult.total//计算需分几次取constbatchTimes=Math.ceil(total/100)//承载所有读操作的promise的数组consttasks=[]for(leti=0;ibatchTimes;i++){constpromise=collections.where({_openid:wxContext.OPENID,data:{date:_.and(_.gte(firstdate),_.lte(lastdate))}}).skip(i*MAX_LIMIT).limit(MAX_LIMIT).get()tasks.push(promise)}//等待所有return(awaitPromise.all(tasks)).reduce((acc,cur)=({data:acc.data.concat(cur.data),errMsg:acc.errMsg,}))涉及到数据库和查询,当然要创建索引来增加查询的速度,这个查询一共是根据两个字段的,'_openid'和'data.date'两个字段,所以,我们在索引处添加这两个字段。

4.更新字段更新字段,

//myid是所要更新的数据的_idcollections.doc(myid).update({data:{data:mydata//更新的字段以及数值},success:res={console.log(res)},fail:err={console.log(err)}})5.删除数据删除数据

collections.doc(id).remove({success:function(res){console.log(res)wx.showToast({title:'删除成功',icon:'success',duration:2000})}})

1.我的一个成品微信小程序:

2.Random电影日历,每天一部电影,还能看天气。

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎