小程序中的某个内容的浏览量如何实现?我一开始想的是设置一个变量,每有用户点击一下,此变量+1,但是如何实现对此变量+1呢?下面将介绍此功能的实现。
wx.cloud.database().command.inc(值)
先介绍一下需要用到的云函数。
值为自增量,可正可负,
多个用户同时写,对数据库来说都是将字段自增,不会有后来者覆写前者的情况
例:对todo的进度自增10
const _ = db.command
db.collection('todos').doc('todo-id').update({
data: {
progress: _.inc(10)
}
})
首先说一下浏览量实现的思路:
在上传数据库时设置一个用来记录浏览量的变量,
在页面加载的函数中获取数据库拿到此变量,
紧接获取数据库的函数下面再更新数据库,更新数据库的函数中用inc实现此变量+1。
示例:
用lookNumber记录浏览量。
在页面加载时先执行下列代码:获取数据库中此文章的浏览量
db.collection('notice').doc(_id).get({
success:(res) => {
const {data} = res;
const {lookNumber} = data;
this.setData({
lookNumber
})
},
fail:(res) => {
showToast({
icon:'none',
title:'显示内容失败'
})
}
})
然后执行下列代码:对数据库中的浏览量进行自增,同时此处的自增也是我当时困惑的地方,实现自增需要用到wx.cloud.database().command.inc(自增数)。
db.collection('notice').doc(_id).update({
data:{
lookNumber:db.command.inc(1),//自增
},
})
至此,我们就完成了对文章浏览量的实现。