• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 微信小程序云开发服务端数据库API 获取集合数据

微信小程序云开发服务端数据库API 获取集合数据

作者:w3cschool 字体:[增加 减小] 来源:互联网 时间:2018-11-23

w3cschool通过本文主要向大家介绍了微信小程序云开发服务端数据库API 获取集合数据等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

微信小程序云开发服务端数据库API 获取集合数据

由 Carrie 创建, 最后一次修改 2018-11-12 function get(): Promise<Result>

返回值说明

Promise 的 resolve 和 reject 的结果定义如下:

结果说明
resolve查询的结果,Result 定义见下方
reject失败原因

Result 说明

Promise resolve 的结果 Result 是一个如下结构的对象:

字段类型说明
dataArray查询的结果数组,数据的每个元素是一个 Object,代表一条记录

示例代码 1

获取我的待办事项清单

Promise 风格

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection('todos').where({
    _openid: 'xxx' // 填入当前用户 openid
  }).get()
}

示例代码 2:分页取数据

获取我的第二页的待办事项清单,假设一页 10 条,现在要取第 2 页,则可以指定 skip 10 条记录

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection('todos')
    .where({
      _openid: 'xxx', // 填入当前用户 openid
    })
    .skip(10) // 跳过结果集中的前 10 条,从第 11 条开始返回
    .limit(10) // 限制返回数量为 10 条
    .get()
}

示例代码 3:取集合所有数据

获取集合中的所有待办事项清单:因为有默认 limit 100 条的限制,因此很可能一个请求无法取出所有数据,需要分批次取:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const MAX_LIMIT = 100
exports.main = async (event, context) => {
  // 先取出集合记录总数
  const countResult = await db.collection('todos').count()
  const total = countResult.total
  // 计算需分几次取
  const batchTimes = Math.ceil(total / 100)
  // 承载所有读操作的 promise 的数组
  const tasks = []
  for (let i = 0; i < batchTimes; i++) {
    const promise = db.collection('todos').skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
    tasks.push(promise)
  }
  // 等待所有
  return (await Promise.all(tasks)).reduce((acc, cur) => {
    return {
      data: acc.data.concat(cur.data),
      errMsg: acc.errMsg,
    }
  })
}
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-11-30微信小程序中实现摇一摇功能的方法介绍
  • 2018-11-30微信小程序列表开发详解
  • 2018-11-30微信小程序商城中侧栏分类的效果实现
  • 2018-11-30微信小程序实现共用变量值的方法介绍
  • 2018-11-30微信小程序 JS动态修改样式的实现代码
  • 2018-11-30微信小程序上传图片实战案例解析
  • 2018-11-30diff的对象是虚拟dom
  • 2018-11-30微信小程序教程之本地图片上传(leancloud)实例详解
  • 2018-11-30微信小程序(应用号)简单应用
  • 2018-11-30带你详细分析微信小程序的现状、问题与市场

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序rich-text组件:富文本解析器的应用
    • 微信小程序开发之录音机 音频播放 动画实例
    • JS运动缓冲效果的封装函数如何使用
    • 小程序开发之天气预报
    • 总结有关小程序开发的经验
    • 微信小程序之蓝牙链接实例教程
    • 小程序开发之如何使用cookiejar记住帐号
    • 微信小程序开发之跑步微信小程序
    • 详解微信小程序开发教程示例
    • 从Chrome App看微信小程序的发展前景

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有