云数据库:

云数据库提供高性能的数据库写入和查询服务。通过腾讯云开发(Tencent CloudBase.TCB)的SDK,可以直接在客户端对数据进行读写,也可以在云函数中读写数据,还可以通过控制台对数据进行可视化的增、删、查、改等操作。微信小程序云开发所使用的数据库本质上就是一MongoDB数据库。MongoDB数据库是介于关系数据库和非关系数据库之间的产品:是非关系数据库中功能最丰富、最像关系数据库的。
数据库:默认情况下,云开发的函数可以使用当前环境对应的数据库。可以根据需要使用不同的数据库。对应MySQL中的数据库。
集合:数据库中多个记录的集合。对应MySQL中的表。
文档:数据库中的一条记录。对应MySQL中的行。
字段:数据库中特定记录的值。对应MySQL中的列。

数据类型:

string:字符串。

number:数字。

object:对象。

array:数组。

bool:布尔值。

date:时间。

geo:多种地理位置类型。

null。

云数据库API

触发网络请求的API

API 说明
get 获取集合/记录数据
add 在集合上新增记录
update 更新集合/记录数据
set 替换更新一个记录
remove 删除记录
count 统计查询语句对应的记录条数

获取引用的API

API 说明
database 获取数据库引用,返回Database对象
collection 获取集合引用,返回Collection对象
doc 获取对一个记录的引用,返回Document对象

数据库对象的字段

API 说明
command 获取数据库查询及更新指令,返回Command
serverDate 构造服务端时间
Geo 获取地理位置操作对象,返回Geo对象

集合对象API

API 说明
doc 获取对一个记录的引用,返回Document对象
add 在集合上新增记录
where 构建一个在当前集合上的查询条件,返回Query,查询条件中可使用查询指令
orderBy  指定查询数据的排序方式
limit 指定返回数据的数量上限
skip 指定查询时从选中的记录列表中的第几项之后开始返回
field 指定返回结果中每条记录应包含的字段

记录/文档对象API

API 说明
get 获取记录数据
update 局部更新数据
set 替换更新记录
remove 删除记录
field 指定返回结果中记录应包含的字段

Command对象查询指令

类别 指令 说明
比较运算 eq 字段是否等于指定值
neq 字段是否不等于指定值
lt 字段是否小于指定值
lte 字段是否小于或等于指定值
gt 字段是否大于指定值
gte 字段是否大于或等于指定值
in 字段值是否在指定数组中
nin 字段值是否不在指定数组中
逻辑运算 and 条件与,表示需同时满足多个查询筛选条件
or 条件或,表示只需满足其中一个条件即可
nor 表示需所有条件都不满足
not 条件非,表示对给定条件取反
字段 exists 字段存在
mod 字段值是否符合给定取模运算
数组 all 数组所有元素是否满足给定条件
elemMatch 数组是否有一个元素满足所有给定条件
size 数组长度是否等于给定值
地理位置 geoNear 找出字段值在给定点的附近的记录
geoWithin 找出字段值在指定区域内的记录
geoIntersects 找出与给定的地理位置图形相交的记录
Command对象更新指令
类别 指令 说明
字段 set 设置字段为指定值
remove 删除字段
inc 原子操作,自增字段值
mul 原子操作,自乘字段值
min 如果字段值小于给定值,则设为给定值
max 如果字段值大于给定值,则设为给定值
rename 字段重命名
数组 push 往数组尾部增加指定值
pop 从数组尾部删除一个元素
shift 从数组头部删除一个元素
unshift 往数组头部增加指定值
addToSet 原子操作,如果不存在给定元素则添加元素
pull 剔除数组中所有满足给定条件的元素
pullAll 剔除数组中所有等于给定值的元素

云数据库操作代码模板:

1. get模板

db.collection('test').where({price: _.gt(10)}).field({name: true,price: true,}).orderBy('price', 'desc').skip(1).limit(10).get()

2. aggregate模板

db.collection('test').aggregate().group({// 按 category 字段分组_id: '$category',// 每组有一个 avgSales 字段,其值是组内所有记录的 sales 字段的平均值avgSales: $.avg('$sales')}).end()

3. add模板

db.collection('test').add({data: [{_id: 'apple-1',name: 'apple',category: 'fruit',price: 10,},{_id: 'orange-1',name: 'orange',category: 'fruit',price: 15,},{_id: 'watermelon-1',name: 'watermelon',category: 'fruit',price: 20,},{_id: 'yaourt-1',name: 'yaourt',category: 'dairy',price: 8,},{_id: 'milk-1',name: 'milk',category: 'dairy',price: 12,},{_id: 'chocolate-1',name: 'Lindt chocolate',category: 'chocolate',price: 16,},]})

3. set模板

db.collection('test').doc('milk-1').set({data: {name: 'milk',category: 'dairy',price: 18,}
})

4. count模板

db.collection('test').where({price: _.gt(10)}).count()

5. collection.uodate模板

db.collection('test').where({category: 'fruit'}).update({data: {price: _.inc(5)}})

6. doc.update模板

db.collection('test').doc('orange-1').update({data: {price: _.inc(10)}})

7. remove模板

db.collection('test').doc('milk-1').remove()

8. 变量声明模板

const serverDate = db.serverDate
const { Point } = db.Geo
db.collection('test').doc('milk-2').set({data: {name: 'milk 2',category: 'dairy',price: 20,updateTime: serverDate(),origin: Point(120, 48)}
})

9. 正则表达式查询模板

db.collection('table').where({collegeName: db.RegExp({regexp: 'string',   // 正则表达式// i:大小写不敏感  m:跨行匹配 s:让.可以匹配包括换行符在内的所有字符options: 'i|m|s', })}).get()

10. 多表联查

db.collection('table1')
.aggregate()
.sort({'字段': -1})   //-1:降序  1:升序
.match({查询条件}).lookup({from: 'table2',localField: '当前表连接字段',foreignField: '对应表外键字段',as: '别名'}).end()

微信小程序云开发(云数据库的使用)相关推荐

  1. 微信小程序6-云开发-云数据库

    微信小程序1-小程序基础,开发工具安装使用 微信小程序2-WXSS,WXS 微信小程序3-小程序生命周期和组件 微信小程序4-小程序的api 微信小程序5-真机测试 1.云开发 1).什么是云开发 微 ...

  2. 【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)

    效果预览 核心技术(含业务逻辑) 选择新头像(本地图片) 使用 wx.chooseMedia 选择本地图片,官网见 https://developers.weixin.qq.com/miniprogr ...

  3. 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏

    开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...

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

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

  5. 【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

    开始前,请先完成圆梦宝典中滚动公告栏的开发,详见 [微信小程序-原生开发]实用教程 08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据 ...

  6. 微信小程序——传统开发模式与云开发模式对比

    目  录 1.传统开发模式与云开发模式的对比图 2.云开发技术能力说明 3.云开发技术特点 1.传统开发模式与云开发模式的对比图 通过传统开发模式与云开发模式的对比图可以看出传统开发模式需要开发者关注 ...

  7. 微信小程序使用阿里云物联网API开发物联网应用

    微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下就可以打开的应用. 微信小程序具有方便快捷,速度快,安全及保密性高的优点,同时开发 ...

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

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

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

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

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

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

最新文章

  1. [文摘20070913]最好的消息
  2. centos7 网卡配置vlan_Centos7安装后的一些基础配置
  3. 积木赛尔号机器人_《赛尔号大电影7》定档2019年暑期 十年陪伴升级归来
  4. Digimeter 软件
  5. Linux跨平台远程控制
  6. nginx 下配置使用Thinkphp5解决跨目录活动并且设置网站根目录
  7. python怎么输入三个数按大小输出_Python练习一 : 随机输入三数字,按大小顺序输出...
  8. Docker使用概览图
  9. 【jQuery笔记Part1】12-jQuery元素的角标
  10. 【答辩问题】计算机专业本科毕业设计答辩自述2
  11. ZR提高失恋测2(9.7)
  12. SnagIt9.0过了适用期,弹出关于的窗口解决办法
  13. 计算机视觉术语,计算机视觉常用术语中英文对照
  14. Python中迭代函数chain
  15. 诚风老师-十年了,当年那帮做直销的穷小子都成了富豪
  16. 100个常用的 PHP 类库、资源和技巧小结
  17. java生成唯一订单号
  18. jquery实现的网页计数器
  19. VmatrixOJ--IP and QQ
  20. 设计模式(3)----- 简单工厂模式

热门文章

  1. pandas.series.tolist()函数结构及用法
  2. 【Algorithm】算法设计与分析(第二版)- 王红梅 - JAVA实现:3.2 分式化简。设计算法,将一个给定的真分数化简为最简分数形式。例如,将6/8化简为3/4
  3. 美国Appstore游戏数据分析
  4. Arduino连接超声波传感器测距
  5. Linux下go环境安装、环境配置并执行第一个go程序
  6. 【OpenCV学习】(三)色彩及矩阵操作
  7. JavaScript 编程精解 中文第三版 四、数据结构:对象和数组
  8. 计算机的网络测速,网速知识 - 专业网速测试, 宽带提速, 游戏测速, 直播测速, 5G测速, 物联网监测 - SpeedTest.cn...
  9. Systrace 响应速度实战 1 :了解响应速度原理
  10. 超详细的元器件分类大全—电阻、电容、电感