我们常用的聊天功能,或者是在游戏中与队友的游戏数据保持一致,等等这些都是通过数据实时推送进行的。

那么今天我就来讲一个比较简单的示例,实时监听集合中的数据条数。这是最简单的示例:

db.collection('searchta')
.watch({onChange: snapshot=> {console.log('docs\'s changed events', snapshot.docChanges)this.setData({peopleCount:snapshot.docChanges.length})},onError: err=> {console.error('the watch closed because of error', err)}})

没错,就是watch(),它能更高级的代替get()。在上述示例代码中,snapshot.docChanges即是返回的数据库信息,以数组的形式返回。所以,这样就可以实时获取数据库的信息数量。

需要注意的是:在使用watch的时候,onChange和onError必须同时使用,否则会报错。另外,如果仅使用watch,需要将调式基础库改为2.8版本以上。

当然,上面是最简单的示例。稍微复杂点的就是结合limt()、orderBy()等一起使用。这时候需要注意,调式基础库需要在2.9.2版本以上。所以,你也可以直接选择最高版本。

const db = wx.cloud.database()
const watcher = db.collection('todos')// 按 progress 降序.orderBy('progress', 'desc')// 取按 orderBy 排序之后的前 10 个.limit(10).where({team: 'our dev team'}).watch({onChange: function(snapshot) {console.log('docs\'s changed events', snapshot.docChanges)console.log('query result snapshot after the event', snapshot.docs)console.log('is init data', snapshot.type === 'init')},onError: function(err) {console.error('the watch closed because of error', err)}})
// ...
// 等到需要关闭监听的时候调用 close() 方法
watcher.close()

onChange 和 onError 是必传参数。onChange 用于接收变更快照,onError 用于处理监听错误。如果监听发起失败或监听过程中出现不可恢复的错误,则会终止监听并通过 onError 抛出异常。onChange 会在第一次监听初始化及后续数据变更时收到推送事件。

当然了,你也可以通过筛选条件只对某一条数据进行监听。示例:

const db = wx.cloud.database()
const watcher = db.collection('todos').doc('x').watch({onChange: function(snapshot) {console.log('snapshot', snapshot)},onError: function(err) {console.error('the watch closed because of error', err)}
})

微信小程序云开发之实时监听数据库某集合数据条数相关推荐

  1. 微信小程序云开发入门(二)-数据库详解

    微信小程序云开发入门(二)-数据库详解 接上一篇:微信小程序云开发入门(一) 摘要: 因为微信小程序云数据库有点类似传统的关系型数据库,但又有所不同.所以刚入手的时候会有点困扰,经过一段时间的学习和摸 ...

  2. 微信小程序云开发查询(显示)数据库集合的指定字段

    在小程序云开发中,如果我们对于查询到的集合只需要某条记录的某个字段值的话,可以这样实现:res.data[第几条记录].字段名

  3. 微信小程序云开发数据库操作

    1.在app.js中初始化云环境 // app.js App({onLaunch() {//初始化云服务if (!wx.cloud) {console.error('请使用 2.2.3 或以上的基础库 ...

  4. 【系】微信小程序云开发实战坚果商城-云开发之订单品数据实现

    第 3-9 课:云开发之订单品数据实现 目录 开篇 [系]微信小程序云开发实战坚果商城-开篇 基础篇 [系]微信小程序云开发实战坚果商城-弹性盒子 [系]微信小程序云开发实战坚果商城-ES6 简单入门 ...

  5. 【系】微信小程序云开发实战坚果商城-云开发之首页数据实现

    第 3-6 课:云开发之首页数据实现 目录 开篇 [系]微信小程序云开发实战坚果商城-开篇 基础篇 [系]微信小程序云开发实战坚果商城-弹性盒子 [系]微信小程序云开发实战坚果商城-ES6 简单入门 ...

  6. 微信小程序云开发 · 从0搭建商业级校园跑腿平台(已开源)

    微信小程序云开发  ·  从零搭建商业级校园跑腿平台 小秃僧 新生代农民工,一枚准毕业的大四学生,热爱前端开发,做个有态度.有思想.有价值的公众号. 好久不更新了,再更新已是打工人! 我将分享用云开发 ...

  7. 没学后端也能开发小程序——微信小程序云开发的介绍知识

    微信小程序云开发的介绍知识 云开发模式 产品经理-->前端开发-->上线 云开发 传统开发 效率 只关心业务逻辑,效率高 需要关注非业务逻辑,效率低 成本 按需付费,有免费额度 前期需要预 ...

  8. 怎么实现微信小程序云开发拼团功能?

    [微信云开发教程]怎么实现微信小程序云开发拼团功能? 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 [微 ...

  9. 微信小程序云开发项目——多肉植物销售小程序

    前言 此项目为本人在大学的毕业设计作品,基于微信小程序云开发技术进行开发,暂未商用和托管.编写文章意在为求职做准备,亦乐于与大家进行经验交流分享,欢迎进行评论咨询哦. 简介 用户角色分为:一般顾客.商 ...

  10. 微信小程序云开发及背后的云服务支持。

    文章目录 导语 什么是微信小程序云开发? 云开发的优势 云开发的技术生态支持 微信云开发主要能力特性 云数据库: 云函数: 云存储: 身份认证: 云调用: 云开发与传统开发的模式区别 小程序云开发带来 ...

最新文章

  1. python实时读取日志并打印关键字怎么实现_面试宝典_Python.运维开发.0004.用Python实现tail实时输出新增日志?...
  2. fastDFS安装及配置
  3. 小工匠聊架构 - 构建架构思维
  4. asmx 接受 ajax post,jQuery ajax调用web服务(asmx)触发认证弹出框
  5. 学习较底层编程:动手写一个C语言编译器
  6. 新文速递 | 盒装数据:一种基于数据盒的数据产品形态
  7. PHP 字符串编码处理 (附各语言的字符集编码范围)
  8. 在windows下挂载nfs文件系统
  9. Node+GitLab实现小程序CI系统
  10. Junit5集成到SpringBoot工程
  11. vivox50pro鸿蒙系统,小米10至尊纪念版和vivox50pro+哪一款手机好
  12. (Deep learning)深度卷积网络实战——第四部分
  13. Vue源码学习(三)——数据双向绑定
  14. 5 . 2 查 询 优 化 器
  15. matlab动态显示鼠标值,动态显示鼠标的坐标值和像素值
  16. Java web项目的解耦合
  17. 破解大众点评 css加密
  18. html 怎么在背景图片上添加内容,css 如何在一个背景图片的中间添加文字呢?
  19. 一文理解所有需求分析中的基本术语
  20. 移动端适配时对meta name=“viewport“ content=“width=device-width,initial-scale=1.0“的理解

热门文章

  1. JavaEE | 语言基础部分、对象与类
  2. ceph-创建使用rule-ssd规则的存储池
  3. 使用C# 开发Pocket PC 应用程序(转)
  4. Pycharm下载三方库失败的解决办法
  5. Win11家庭版没有本地组策略编辑器怎么办?
  6. [周鸿祎] 与其苟且活着,不如奋起抗争
  7. 阿帕网几台大型计算机网络,阿帕网-互联网的鼻祖(中) | 午夜猫
  8. elasticSearch搜索引擎安装使用,SprignBoot整合Spring Data Elasticsearch,百度云 Elasticsearch安装包
  9. com.netflix.discovery.DiscoveryClient : Completed shut down of DiscoveryClient
  10. 计算机函数average意思,average函数的功能是计算什么