文末有彩蛋
5-1,在数据库里新建集合(数据表)
我们这里以新建一个商品列表为例
5-2,数据库权限管理
要想让用户查询到我们创建的商品数据,需要把权限改为所有用户可读
5-3,数据库的增删改查
5-3-1,查询 get()
- 传统写法
- ES6简洁写法
推荐第二种写法
5-3-2,条件查询 where()
5-3-3,查询单条数据doc()
doc是用来查询单条数据的。比如商品详情页。 doc里面用到的参数就是我们数据里的_id字段
5-3-4,添加数据 add()
通过add可以实现数据的添加,
5-3-5,更新数据update()
修改数据库里已存在的数据,结合doc进行修改单条数据
5-3-6,删除数据remove()
删除数据,结合doc删除单条数据
5-4,增删改查综合案例
- 1,能查看商品列表
- 2,更动态添加商品
- 3,能进入商品详情页
- 4,能删除某个商品
- 5,能修改某个商品的价格
5-4-1 列表跳详情 data-
- 1,在wxml里定义data- 要绑定的数据
- 2, 在js页面里的点击方法里拿到绑定的数据
- 比如打印结果如下
在这里插入图片描述
5-4-2,列表跳详情并携带商品id
- 1,列表跳页到详情页
- 2,拿到列表跳页时携带的id数据
5-4-3,查询商品列表
5-4-4,添加商品并刷新商品列表
5-4-5,更新商品数据
用户输入新价格,调用update方法进行更新数据
我们更新成功的时候,会有如下所示的日志打印。
只有stats里的updated是1的时候,才代表成功的更新了一条数据。 如果这条商品不是你创建的,当你对这条商品做更新操作时,打印的updated就是0。
这个时候代表没有更新成功。这是因为操作时的权限问题,要解决这个问题,就要借助云函数了,这里我们先放在这里,在后面云函数章节会做具体讲解。
5-4-6,弹窗提示确认是否删除
用户删除数据是一个危险操作,所以操作之前最好给用户一个友好提示。 官方弹窗文档:https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showModal.html
5-4-7,删除商品
5-4-8,更新和删除时的权限问题
如果这条商品不是你创建的,当你对这条商品做删除或者更新操作时,虽然也会返回成功,但是可以看到我们更新或者删除的条数是0。
其实这个时候也意味着没有更新或者删除成功,这里是因为操作权限的问题,因为这条数据不是你创建的。所以你只能对这条数据做查询操作,而不能做修改和删除操作。要想解决这个问题,就要借助云函数了。后面云函数讲解的部分,我会做具体讲解的。
我们还是先接着学习数据库操作的高级操作
5-6,常用快捷键
我们在开发时为了提高代码编写效率,通常会使用一些快捷键。我们小程序开发工具里常用的快捷键如下。 设置---》快捷键设置
在这里插入图片描述 然后点击如下快捷键即可查看所有的快捷键
如果感觉默认的快捷键不喜欢,可以自己重新设置快捷键。由于自带的快捷比较多,我这里不一一列举了,我把一些常用的快捷键拿出来给大家大致讲一讲,我这里以window电脑为例,如果你mac电脑,可以自己去看下开发者工具默认的快捷键。多看几遍把常用的记住就行了。
有的电脑上快捷键可能会有细微差距,以开发者工具默认自带的快捷键为准。
5-7,数据库排序orderBy
orderBy方法在做排序的时候,接受两个参数
- 1,根据那个字段排序
- 2,排序规则(升序或者降序)。升序用asc,降序用desc
如我们根据商品价格从低到高升序排列
如我们根据商品价格从高到低降序排列
5-8,返回指定条数的数据limit
limit用来指定查询结果集数量上限,比如我们有100条数据,只想返回前20条,我们可以通过limit(20)来指定只返回20条数据。
例如,只返回3条数据的写法如下
- 注意:limit 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 1000
5-9,分页方法skip
skip指定查询返回结果时从指定序列后的结果开始返回,常用于分页。比如我们有100条数据,想从第10条开始返回数据,可以通过skip(10)来实现
- skip结合我们上面学的limit方法可以实现分页效果
比如我们有100条数据,每次返回20条数据。那么就可以分5页返回。
- 第1页 limit(20).skip(0)
- 第2页 limit(20).skip(20)
- 第3页 limit(20).skip(40)
- 第4页 limit(20).skip(60)
- 第5页 limit(20).skip(80)
5-10,Command数据库操作符
我门上面学完了数据库的增删改查,但是这些都是最基础最简单的操作,如果我们想实现复杂的数据查询操作,该怎么办呢 比如
- 查询价格大于100的商品?
- 查询年龄小于18岁的学生?
- 如何同时修改多条数据?
- 如何同时删除多条数据?
我们如果想实现上面这些复杂的操作,就需要用到数据库里的 Command数据库操作符,就是下面这位
官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Command.html
5-10-1,gt查询大于指定值的数据
比如查询价格大于5的所有商品
5-10-2,gte查询大于等于指定值的数据
比如查询大于等于5元的商品
5-10-3,lt查询小于指定数值的数据
比如查询价格小于5的所有商品
5-10-4,lte查询小于等于指定数值的数据
比如查询价格小于等于5元的所有商品
5-10-5,and同时满足多个条件的查询
比如查询价格大于5小于10元的所有商品
完整视频讲解:https://www.bilibili.com/video/BV1x54y1s7pk/