ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

微信小程序云开发读取数据超过20,云函数读取超过100条限制,获取云开发数据库集合里的所有数据的方法

2021-06-28 11:57:56  阅读:145  来源: 互联网

标签:#### 20 读取数据 微信 ec 列表 cell mathbf ###


> 这是一篇关于讲解如何正确使用**51CTO博客-Markdown**的排版示例,希望通过此,大家都能轻松上手,都能通过**M> 看过石头哥云开发基础课的同学肯定都知道,直接在小程序里请求数据每次最多只能返回20条数据,云函数里请求数据每次最多只能返回100条数据,如果想突破这个限制,最好的方式就是做分页,当然分页我在云开发基础里也有教大家。但是限制存在这么一个需求,如果我们想一次性的拿到数据库里存的所有数据呢,比如数据库里有1000条数据,我们想一下子全部拿到,该怎么做呢??? ![](https://www.icode9.com/i/ll/?i=20210628103956169.png) 今天就来教大家如何通过云函数每次最多返回100条的限制。 ## 一,云函数突破100条的限制 ![](https://www.icode9.com/i/ll/?i=20210628104523624.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 如上图所示,我的num集合里有103条数据,如果按照之前的分页思路,就是分两次请求,第一次请求1-100条,第二次请求101-103条。这样我们虽然是可以拿到103条数据,但是要做两次请求,我们该如何做,才能一次请求就可以获取这103条数据呢。 ## 1-1,突破100条的原理 其实原理和我们分页的原理是一样的,只不过我们用for循环做多次请求,然后把这多次的请求组合到一起,然后把组合好的数据一次性全部返回。这样就通过一次请求获取所有数据。 ## 1-2,代码实现 这里的代码是写在云函数里,操作步骤我都在注释里给大家写出来。 ![](https://www.icode9.com/i/ll/?i=20210628110616742.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 如上图所示,我们只需要通过三个步骤,就可以拿到所有的103条数据了。 ![](https://www.icode9.com/i/ll/?i=20210628110728391.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 这样我们就可以通过一次请求,获取所有的数据了。是不是感觉很简单。这里把代码贴出来给到大家。 ``` // 云函数入口文件 const cloud = require('wx-server-sdk') // 云开发环境初始化 cloud.init({env: cloud.DYNAMIC_CURRENT_ENV}) exports.main = async (event, context) => { const db = cloud.database() // 1,获取数据的总个数 let count = await db.collection('num').count() count = count.total // 2,通过for循环做多次请求,并把多次请求的数据放到一个数组里 let all = [] for (let i = 0; i < count; i += 100) { //自己设置每次获取数据的量 let list = await db.collection('num').skip(i).get() all = all.concat(list.data); } // 3,把组装好的数据一次性全部返回 return all; } ``` ## 1-3,注意事项 云函数单次返回的数据不能超过1M,如果需要超过1M,则需要使用小程序端的数据查询20条20条的进行组合了。所以如果你一次性要返回很多数据,可以考虑在小程序里直接请求数据库,然后做20条20条的组装。 我下面也会教大家在小程序里做组装。 # 二,小程序直接请求数据库突破20条 ## 2-1,开启async和await 原理我们这里不在说了,和上面是一模一样的,只不过小程序里使用await需要做下简单的操作,也可以去看下我的另外一篇文章。 [《小程序里使用async和await变异步为同步,解决回调地狱问题》](https://xiaoshitou.blog.csdn.net/article/details/117380170) ![](https://www.icode9.com/i/ll/?i=20210628111333438.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 现在最新版本的小程序开发者工具好像已经支持async和await方法了,好像不勾选增强编译也没事。但是安全起见,还是勾选下增强编译比较好。 ## 2-2,权限修改 小程序里直接获取数据库里的数据,记得要把集合的权限改一下 ![](https://www.icode9.com/i/ll/?i=20210628111451721.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) ## 2-3,代码实现 ![](https://www.icode9.com/i/ll/?i=20210628111831990.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 细心的同学肯定可以看出来,上面的代码和我们云函数里的代码基本上一模一样的。 ![](https://www.icode9.com/i/ll/?i=20210628111952987.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdXNoaV8xOTkw,size_16,color_FFFFFF,t_70) 到这里我们就完美的突破了小程序的限制,返回我们想要的任何个数的数据了。 后面会总结更多的小程序知识点给大家,欢迎关注,欢迎留言。arkdown** 能够让自己的文章有更加出色、更清晰明了的排版。 ## 什么是 Markdown Markdown (MD) 是现在普遍使用的一种文档书写语言格式,只需用一些非常简单易记的符号,如(# * / > [] ()\ ),就可以轻松写出一篇具有良好的排版和可读性的文章。 ## 语法示例 ### 1.基本语法 一些常规的语法格式。 #### 1.1 标题 标题用#+空格表示,不同数量的#可以表示不同的标题 \# Heading 1 \## Heading 2 \### Heading 3 \#### Heading 4 \##### Heading 5 \###### Heading 6 #### 1.2 粗体和斜体粗体 在需要操作的文字前后各加三个“*” **这个是粗体**斜体:在需要斜体的文字前后各加一个“*” *这个是斜体*用粗体加斜体:在需要操作的文字前后各加三个“*” ***这个是粗体加斜体*** #### 1.3 删除线删除线语法 在需要删除的文字前后各使用两个符合“~~”~~要删除的文字~~ #### 1.4 引用 符号“>”后面书写文字。示例: > 这个是引用 #### 1.5 目录 可通过:@\[toc\](目录) 生成目录。 #### 1.6 空行 如需空行,则可\ +回车换行。 ### 2.LaTeX公式 LaTeX数学公式有两种:行中公式和独立公式(行间公式)。行中公式放在文中与其它文字混编,独立公式单独成行。 #### 2.1 行内公式 `=mc^2$` =mc^2$ #### 2.2 独立公式 `$=mc^2$$` $=mc^2$$ #### 2.3 复杂公式 ```language $$\begin{array}{c} abla imes ec{\mathbf{B}} -\, rac1c\, rac{\partial ec{\mathbf{E}}}{\partial t} & = rac{4\pi}{c} ec{\mathbf{j}} abla \cdot ec{\mathbf{E}} & = 4 \pi ho \ abla imes ec{\mathbf{E}}\, +\, rac1c\, rac{\partial ec{\mathbf{B}}}{\partial t} & = ec{\mathbf{0}} \ abla \cdot ec{\mathbf{B}} & = 0 nd{array}$$ ``` $$\begin{array}{c} abla imes ec{\mathbf{B}} -\, rac1c\, rac{\partial ec{\mathbf{E}}}{\partial t} & = rac{4\pi}{c} ec{\mathbf{j}} abla \cdot ec{\mathbf{E}} & = 4 \pi ho \ abla imes ec{\mathbf{E}}\, +\, rac1c\, rac{\partial ec{\mathbf{B}}}{\partial t} & = ec{\mathbf{0}} \ abla \cdot ec{\mathbf{B}} & = 0 nd{array}$$ 更多语法参考:[Markdown 编辑器添加 Latex数学公式教程](https://blog.51cto.com/51ctoblog/2847177) ### 3.代码高亮 #### 3.1 普通 ``` *emphasize* **strong** _emphasize_ __strong__ @a = 1 ``` #### 3.2 语法高亮支持 如果在 ``` 后面跟随语言名称,可以有语法高亮的效果,如: ##### 3.2.1 html/xml 代码高亮示例 ```html <meta charset="utf-8"/> <meta content="IE=edge" http-equiv="X-UA-Compatible"/> <meta content="width=device-width, initial-scale=1.0" name="viewport"/> Document <body> ``` ##### 3.2.2 Python高亮示例 ```Python #!/usr/bin/python3 # Fibonacci series: 斐波纳契数列 # 两个元素的总和确定了下一个数 a, b = 0, 1 while b < 10: print(b) a, b = b, a+b ``` ##### 3.2.3 CSS 文件示例 ```css body { background-color: red; } h1 { color: orange; text-align: center; } p { font-family: "Times New Roman"; font-size: 20px; } ``` > 支持语言有: `HTML/XML`, `JSON`, `Bash`, `CSS`, `Java`, `JavaScript`, `PHP`, `Python`, `Rust`, `C/C++` … ### 4.绘制表格 > | Column 1 | Column 2 | Column 3 | | -------- | -----: | :----: | | cell 1 | cell 2 | cell 3 | | cell 4 | cell 5 | cell 6 | | cell 7 | cell 8 | cell 9 | | Column 1 | Column 2 | Column 3 | | -------- | -----: | :----: | | cell 1 | cell 2 | cell 3 | | cell 4 | cell 5 | cell 6 | | cell 7 | cell 8 | cell 9 | ### 5.Todo列表 语法: > \- [ ] **社区直播公开课开展情况** > \- [x] 5分钟搞定俄罗斯方块---组件化实战 > \- [x] 服务早期红利与各项技术场景创新分析 显示: - [ ] **社区直播公开课开展情况** - [x] 5分钟搞定俄罗斯方块---组件化实战 - [x] 服务早期红利与各项技术场景创新分析 ### 6.链接 支持直接粘贴链接地址。链接语法和显示如下: 语法1:`[链接名称](http://链接网址)` 显示:[链接名称](http://链接网址) 或语法2:`` 显示: ### 7. 图片 可通过上传按钮上传图片,也支持直接粘贴图片,也支持拖拽上传图片。图片语法和显示如下: 语法:`![请添加链接描述](图片地址)` 显示:\!\[请添加链接描述](图片地址) ### 8. 有序列表&有序列表 无序列表的使用,在符号“-”后加空格使用。如下: - 列表项 - 列表项 - 列表项 如果要控制列表的层级,则需要在符号“-”前使用空格。如下: - 列表项 - 列表项 - 列表内容 - 列表内容 有序列表的使用,在数字及符号“.”后加空格几个,如下: 1. 列表项 2. 列表项 1. 列表内容 2. 列表内容 1. 子列表内容 2. 子列表内容 3. 子列表内容 ### 9. 分割线 可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,同时需要在分隔线的上面空一行。 例: `-------` `*****` `______` ------- ***** ______ ### 10. 符号转义 如果你的描述中需要用到 markdown 的符号,比如 `# *` 等,但又不想它被转义,这时候可以在这些符号前加反斜杠,如 `\ # * `进行避免。 ### 11. 导入和导出 支持正文导出`.md`的文档,支持导入.md格式的文档。 导入:支持导入本地 `.md `格式的文档 导出:正文内容可以导出本地`.md`格式的文档 ### 12. 其他说明 使用富文本编辑器发布的内容只能富文本编辑器编辑,不可切换Markdown编辑器; 使用Markdown编辑器发布的内容只能Markdown编辑器编辑,不可切换富文本编辑器编辑。

标签:####,20,读取数据,微信,ec,列表,cell,mathbf,###
来源: https://blog.51cto.com/u_14368928/2950597

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有