接上篇:https://developer.aliyun.com/article/1224150?spm=a2c6h.13148508.setting.21.4f394f0em1x0Jq
四、 数据操作命令学习
接下来,介绍一下MongoDB的基础命令。
如上图所示为MongoDB的四个基础命令即增删改查。db代表数据库实例;users代表操作的集合;deleteMany等代表操作命令。我们可以在云数据库控制台中打开“高级模式”进行练习:
如上图所示,按照固定格式写入查询命令点击执行。控制台返回运行结果。
注:这里运行命令和上面展示的增删改查语法有一定差异,这里不需要输入集合名称。在小程序SDK中调用也与此不同,具体请查看开发指南帮助文档。
接下来,讲一讲聚合通道aggregate。当有一些复杂查询,例如连表、聚合、过滤等可以使用aggregate命令完成复杂操。aggregate命令接收数组、数组的每个元素,包括操作步骤。
如上图所示为查询状态为A的顾客消费总金额。
第一个操作是match,过滤所有status字段为A的数据记录。第二个操作是group,根据顾客ID做聚合,赋值给total字段。
如上图所示,原始表orders里有4条记录,每个记录有三个字段,分别是cust_id、amount和status。
接下来,通过$match命令符,筛选所有status字段为A的文档,筛选出三条文档。
接下来,通过$match操作符得到了中间结果,中间结果传递给第二个$group命令。通过$group命令聚合cust_id。
如上图所示,aggregate的一些常用的表达式,aggregate支持更多的复杂操作可以参考官方MongoDB文档进行学习:
https://www.mongodb.com/docs/manual/aggregation/
五、 数据库控制台功能介绍
接下来,讲一讲云数据控制台的索引操作。打开一张数据表,数据表包含三个字段,其中_id字段是系统默认生成的且不可删除。
打开索引界面。在查询数据时根据实际的业务添加相应的索引。
首先,指定索引名字。然后,选择索引属性,根据该字段是否具有唯一特性选择唯一索引或非唯一。添加索引字段,必须和文档里的字段完全一致。在很大程度上提升了查询效率几十倍甚至几百倍。
云数据库支持回档,每天上午不固定时间会产生一个数据备份。当业务发生故障时,可以选择回档到某个具体的时间点,免费提供最近7天的回档记录。