微信小程序——操作数据库

文章介绍了在微信小程序中使用云数据库(如counters和demo_list)进行数据存储和管理的方法,包括用户访问计数、首次访问判断、数据更新和分页加载功能。作者还分享了前端学习资源和面试准备的重要性。
摘要由CSDN通过智能技术生成

*/

onUnload: function () {

},

/**

  • 页面相关事件处理函数–监听用户下拉动作

*/

onPullDownRefresh: function () {

},

/**

  • 页面上拉触底事件的处理函数

*/

onReachBottom: function () {

},

/**

  • 用户点击右上角分享

*/

onShareAppMessage: function () {

}

  • 页面编译时执行的下面函数

  • onload函数—onshow函数–onready

  • 当页面切换时执行

  • onhide函数 切换回来时执行 onshow函数

创建数据库(counters)

在这里插入图片描述

编辑count_demo.wxml

在这里插入图片描述

编辑count_dome.js
  • 在count_demo.js中定义变量实现数据的绑定

Page({

data: {

count:0

},

})

  • 在onload函数中 查询登录用户的访问次数

  • 获取数据库的引用

const db=wx.cloud.database()

  • 获取要操作的集合

const counters=db.collection(‘counters’)

  • 查询用户在counters集合中的数据

//查询用户在counters集合中的数据

db.collection(‘counters’).get().then(res=>{

console.log(res)

})

  • 输出结果

在这里插入图片描述

  • 可以根据返回data数组的长度来判断用户是否是第一次访问

  • 如果长度大于0说明已经登陆过就更新数据

  • 创建更新指令

在这里插入图片描述

if(res.data.length>0){

//更新访问次数

db.collection(‘counters’).doc(res.data[0]._id).update({

data:{

count:_.inc(1)

}

})

//在页面上显示的访问次数

this.setData({

count:++res.data[0].count

})

}else

else{

//新增数据

db.collection(‘counters’).add({

data:{

count:1

}

}).then(res=>{

this.setData({count:1})

})

}

案例二:查询并展示数据

业务需求:
  • 查询数据库中的数据并展示

  • 页面加载时查询第一页的数据

  • 向上拉动页面到底部时查询下一页数据

  • 如果数据库中没有更多数据时,向上拉动不进行查询

实现步骤:
创建集和导入数据(demo_list)为集合设置权限

在这里插入图片描述

在这里插入图片描述

创建demo_list
  • 之间在app.json中的pages配置中的第一行写入保存即可创建并且访问主页也为该页面

在这里插入图片描述

编辑demo_list.js文件
  • 自定义函数getListData分页查询数据

// pages/demo_list/demo_list.js

Page({

data: {

page_size: 8, //每页显示的数量

page_count: 0, //页码

dataList: [],

isRequest:true,//是否请求,放数据库中没有更多数据时不再请求

},

onLoad() {

this.getListData()

},

//分页获取数据

getListData() {

if(!this.data.isRequest){

return

}

//获取数据库

const db = wx.cloud.database()

//计算skip函数的参数值

let offset = this.data.page_count * this.data.page_size

//查询集合中的数据

db.collection(‘demo_list’).skip(offset).limit(this.data.page_size).get().then(res => {

this.setData({

dataList:this.data.dataList.length===0 ? res.data :this.data.dataList.concat(res.data)

})

res.data.length!==this.data.page_size?this.setData({isRequest:false}):true

})

},

/**

  • 页面上拉触底事件的处理函数

*/

onReachBottom: function () {

this.setData({page_count:++this.data.page_count})

this.getListData()

}

})

  1. 获取数据库

  2. 查询数据 skip是查询时跳过的条数 limit是查询时要查询的条数

  3. skip的参数值就是定义的查询的条数*页码数=已经查询出来的条数

  4. 当用户第一次访问时(dataList中没有数据)将数据赋值给dataList变量 如果有数据将两个数组进行合并。

  5. 当请求数组返回时数据的数量不等于我们的设置值时 说明数据没有更多了,我们将isRequest的值设置为false,当他的值为true的时候才允许查询数据

  • 页面刷新时调用

onLoad() {

this.getListData()

},

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以领取


获取!!(备注:前端)**

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以领取

[外链图片转存中…(img-I5rpr0Ly-1713269665332)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值