之前几篇博客里面都详细交代了如何配置云函数,现在就讲一下关于云函数中数据库的使用,主要是讲如何从云开发平台的数据库中调取数据

我们直接来到需要调用数据库数据的页面的js文件,直接设置全局变量,来便于后续调用数据库

const db = wx.cloud.database().collection('数据库集合名称');

如果需要同时访问数据库中的多张表那么就需要设置多个变量,并且要重复多次查询


接下来,我们就是在需要在相应页面的WXML页面设置调用数据库的触发事件,你可以选择使用button,并绑定好数据获取的事件

接下来就要回到js页面进行相应函数的编写

 getmessage(){db.get({success:function(res){//打印获取到的数据console.log(res)}})}

上面是直接将对应集合中的所有数据从数据库中取出,但我们点击按钮数据就会打印,前提是数据的集合中需要有数据

如果发现数据库中的表有数据,自己的操作和代码都没有问题,那么你就去云开发的控制平台看一下你的集合的数据权限要将其改为所有用户可读,仅创建者可读写

上面是讲全部数据取出来,但是有时我们不需要那么多的数据,我们需要的数据往往只有那么几个,那么接下来我们就可以编写代码对数据进行筛选,筛选方法是博主根据所学数据结构编写,可能没有那么专业,如果有更好的方法,或者方法有什么错误,还请指正

    getmessage(){let _this = this;db.get({success:function(res){//打印获取到的数据console.log(res.data)//对渠道的值赋值_this.setData({message:res.data})//对数据进行筛选for(var i = 0;i < res.data.length;i++) {//查找所有数据中category属性为中药的数据字段if(message[i]["category"] != '中药') {//不为中药就将其删除//splice(i,j)方法从数组第一个元素起删除接下去的j个元素message.splice(i,1);i--;}}}})},

这里最主要的就是先设置变量_this = this,这里因为this是希望它指向的是pages这个对象,并且调用有this.setData函数也是想对pages里面data里的数据进行修改,但是如果我们不提前设置变量来存储指向pages的指针,那么我们进入db.get函数里面this指向的就是db这个对象,因此这里要十分注意!!!

上面我们说了怎么从数据库里获取数据,以及怎么筛选数据,但是我们每次都要筛选数据,如果数据太多我们就会加载的很慢,他又要获取全部数据,又要筛选数据,它的时间复杂度就是O(2n),那怎么样才能让数据加载时间慢一点呢,那么下面将的就是关于数据获取的详细查找

这里介绍的是集合的详细查找,上面的方法是可以从数据库里面获取到数据,但是如果有很多数据,但是我们需要的只是某个或者某几个对应属性的数据,那就很不方便,我们就可以添加where进行数据请求时的筛选

   getmessage_1(){db.where({'属性名':'要取出的数据对应的属性名'}).get({success:function(res){console.log(res)//打印取到的数据}})}


这样我们就能获取到name属性值为235的数据字段。

上面给大家讲述了关于数据库获取数据的全局获取,以及特定获取,对于这两种方式是各有利弊,第一种呢,是在第一次获取数据的时候是比较慢的,但是只要我们第一次数据获取到之后,存在本地,那么对于后面数据的获取是很快捷的,第二种方式的话不管在那一次查找数据查找的时间复杂度都是O(n),比较稳定,但是这需要我们在请求其他数据时又要去访问数据库,也是稍显麻烦,对于两种方法应该在实际开发过程中进行选择,没有那个一定是最好的。

下面就是关于对于云开发平台数据库数据获取只能获取到20条数据的解决办法,这个是实际存在的问题,如果你的集合中数据数超过20条你就只能获取到前20条数据,从而导致数据库中的数据不能全部获取到,因此我们需要采用分段获取数据的方法来获取数据。

并且我们在获取数据库数据的时候不一定就是需要点击按键事件来实现,一般我们是可以放到页面加载的时候就获取,就可以实现我们打开某个页面时数据就会展现在用户面前,因此我们一般就把数据库数据获取的工作放在小程序生命周期函数onLoad函数里。

 async onLoad(){//获取数据库容量let count = await db.count();count = count.total;//存储数据库内容let list=[];for(var i = 0;i < count;i += 20) {//每次获取数据库20条数据const promise = await db.skip(i).get();//将每次取到的数据值拼接到list数组里面list = list.concat(promise.data);}//数据的的赋值this.setData({ message:list })},

注意onload函数前面一定要添加async,这样就解决了数据库数据获取超20条的问题啦

微信小程序开发---连接云开发数据库,实现数据获取相关推荐

  1. 微信小程序:uni-app云开发的网盘助手

    这是一款uni-app开发的一款网盘小助手小程序源码 该源码主要用于用户输入关键词然后全网抓取百度网盘资源内容 另外呢该小程序还可以免费领取百度网盘七天会员,所以用来引流特别的不错 该小程序还有外卖系 ...

  2. 微信小程序中配置云开发

    微信小程序中配置云开发 一.配置 app.js 文件 onLaunch() {wx.cloud.init({env: 'cloud1-xxxxxxxxxx', // 云开发 环境IDtraceUser ...

  3. 微信小程序:(更新)云开发微群人脉

    大家好,今天给大家带来的这一款是经过优化更新并有所改动的一个版本 我们之前也发布过一款,今天这一款是在之前的哪一款的基础下增加优化 该小程序的群码都是系统自动采集的,所以没有上线但是没有群的烦恼 另外 ...

  4. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  5. 微信小程序---快速上手云开发

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. Mpvue+koa开发微信小程序——腾讯云开发环境的搭建及部署实现真机测试

    为什么写这篇文章? 之前写过一篇文章:微信小程序开发错误:LoginError {type: "ERR_WX_GET_USER_INFO"}解决方法 有的伙伴在这篇文章中评论为什么 ...

  7. 微信小程序登录注册——云开发

    微信小程序登录注册页面_云开发_调用云数据库 源代码下载https://download.csdn.net/download/lujiebin/11241027 1.界面展示 2.代码 1.云开发初始 ...

  8. 微信小程序详细内容+云开发

    目录 一.微信小程序开发 二.文件介绍 三.基础组件(基本基础组件,更多详细请查看微信开发文档) 四.模板语法 一.文本渲染   {{表达式}} 二.条件渲染 三.列表渲染 四.自定义列表 五.imp ...

  9. 微信小程序如何转云开发

    微信小程序云开发,为前端全栈开发提供了很大的便利.本文主要介绍普通的微信小程序如何让转为云开发. 一.建cloudfunction文件夹 cloudfunction文件夹建立在小程序的根目录下. 二. ...

  10. 2022最新坤坤鸡乐盒微信小程序源码+云开发的

    正文: 云开发坤坤鸡乐盒微信小程序源码是由坤坤铁粉ikun们开发的. 因部分ios用户无法体验共举办,特地开发的小程序版鸡乐盒,听说作者也是5年的铁粉. 现在特别火,我也就不多作介绍了,点击就可以发出 ...

最新文章

  1. 复习06统计学习方法(Logistic回归与最大熵模型)---图片版
  2. metasploit 漏洞评级翻译
  3. 上帝与集合的正确用法(bzoj3884)
  4. 在JS 中使用 fetch 初体验
  5. 对C++中new的认识
  6. 是否使用有硼砂的眼用品
  7. 公有云与私有云的差别(转)
  8. 上银伺服驱动器说明书_威海伺服驱动器维修,诚信互利
  9. Python邮件操作实例:发个邮件用Python实现远程自动关机
  10. UVA10125 POJ2549 Sumsets【暴力+二分】
  11. 一个盒子相对于另一盒子垂直居中的方法
  12. 在线教育工具—白板系统的迭代1——bug监控排查
  13. 人工智能英语演讲总结,持续更新~
  14. 3Dmax各类问题汇总及其完整解决方法
  15. C要点5:float、double、long double(大小,范围,输入输出符,科学计数法)
  16. excel随机数_Excel生成随机数、不重复随机数技巧,试验检测办公必备
  17. python数列的平方_python数组平方
  18. 高速单行道 IN Name Id”:道路入口有一辆车请求进入
  19. Android 高级UI解密 (三) :Canvas裁剪 与 二维、三维Camera几何变换(图层Layer原理)
  20. win32api之虚拟键盘

热门文章

  1. 好工具推荐系列:跨平台安卓实时投屏软件QtScrcpy
  2. java中类成员的限定词_Java类中的限定词
  3. java 如何打开osk_如何打开软键盘 四个方法轻松搞定【图文】
  4. 8.STC15W408AS单片机定时器/计数器
  5. HDMI 2.1 VRR功能详解
  6. QQ群的一“亲切”菜单
  7. 疯狂的石头经典台词和镜头大全(上)
  8. 清华大学计算机学硕读几年,2018级清华大学计算机考研经验分享
  9. 【附源码】Java计算机毕业设计高考志愿智能推荐系统(程序+LW+部署)
  10. 软件工程网络15个人阅读作业2 201521123056 吴剑通