微信小程序云开发数据库查询指南

写在前面

做小程序的开发已经有很长一段时间了,虽然是在写,但是一直没有去沉淀过,没有去记录过踩过的坑,这篇博客作为一个导航,记录一下我所遇到的坑(主要还是云函数的数据库查询)

随着不断的更新,小程序的功能也是越来越完善,想当初,刚玩小程序云开发的时候,云开发提供的一个查询环境还不支持$(Aggregate)_(Command),以及高级的查询方法例如lookup,在现在也是都被修复了。。

写这么一系列博客,也有一个原因,刚玩微信云开发的时候看小程序云开发的文档解释的超级晕的。。。你看那个Aggregate聚合...一时间无法理解....(虽然后来看就好多了)


咳,闲扯就这么多,本文章假定你已经能够搭建一个云函数、并且跑过一遍完全没有问题(一般来说不会有问题的,创建的时候模板里的把该配置的变量都配置了...)

...理论上可以在微信小程序的代码里直接写查询....小程序貌似默认有这些方法的(具体还没尝试,如果可以,未来ts分层的时候,dao层就可以直接放查询了2333)

然后...关于小程序的版本更新,当时做了一次代码重构,Node版本是8.9,后来因为外部需要云开发的数据,又新写了一组方法,node版本10.15。两次的版本差距还是蛮大的(还是因为两次用的查询不一样...具体未来说明)

正文

在了解高级查询之前,我基本上都是靠多次查询,大部分业务的处理都在Service层中处理的,我开始涉及高级查询的契机是在一个业务的需求,要获取一个时间范围内的数据,而我存储的时间格式是YYYY-mm-dd,这意味着只有两种方式完成查询,一种是正则匹配,匹配年月(2020\-07),或者是对查询的数据进行预处理,转换成另一种有规律的格式,来实现复杂的查询,这个方式会在后面说起。

对于基本的内容,我抽象出了一套方法,可以适用于大部分的增删改,非常方便(有点类似于mybatis提供的一套基本的查询方案,不过没有jpa辣么智能)

  1. 云开发数据库的基本查询(使用云函数演示)
  2. 云开发数据库的高级查询(使用云函数演示)
  3. 云开发使用nodejs(不做具体介绍,只说有这么个东西,细心的你大概已经发现了,包括云函数的查询操作都是引用一个微信的sdk(wx-server-sdk)完成的)