《微信小程序开发从入门到实战》学习三十六

4.2 云开发JSON数据库

4.2.6 云开发JSON数据库

在集合对象上调用add方法可以在集和中可以插入一条记录,代码如下:

    db.collection('testOne').add({ // 在JSON数据库的testOne集合中增加一个记录

      data:{

        name: "write paper"

      },

      // 插入数据成功时小程序会自动调用success函数,并传入一个res函数

      success: function(res){

        // res是一个对象,其中有_id字段标记刚创建的记录的ID

        console.log(res)

      },

      fail: function(res){

        // res是一个对象,其中有errCode字段表示错误码,errMsg字段表示错误信息

        console.log(res)

      },

      complete: function(res){

        // res是一个对象,它的内容与success或fail回调中的res参数是一样的

        console.log(res)

      }

    })

调用这个数据库API时,可以设置三个回调函数:success(记录成功时执行某操作),fail(记录失败执行某操作),complete(无论记录成功还是失败都会被调用,在success或fail之后)。这三个回调函数可选可不选看需求。

新增记录如果是小程序端执行会自动增加_id和_openid字段。

另外数据库API支持一种叫作Promise的风格,在add方法后会调用then方法或者catch方法分别实现success回调和fail回调的功能,代码如下:

db.collection('testOne').add({

      data: {

        name: 'write paper er'

      }

    }).then(res => { //then方法中需要传入一个JS函数,这里使用箭头函数语法

      // 插入数据成功时小程序会自动调用本方法

      console.log(res)

    }).catch(res => {

      // 插入数据失败时小程序会自动调用本方法

      console.log(res)

    })

执行了then中的函数就不会再执行catch中的函数,反之亦然。

在小程序端,增删改查同时支持回调风格和Promise风格,同一次API调用中,两风格不能混用。

在服务端,数据库API只支持Promise风格的调用。

4.2.7 查询数据

在集合的引用上调用get方法可以获取该集合的所有记录,代码如下:

    db.collection('testOne').get({

      success: function(res) {

        // res.data包含集合中有权限访问的所有记录的数据,不超过20条

        console.log(res.data)

        console.log(res)

      }

    })

获取到的结果如截图所示:

在记录的引用上调用get方法可以获取该记录的数据内容。代码如下:

db.collection('testOne').doc('0b153f9a6565fc5001669a0137c46a40').get({

      success: function(res) {

        // res.data 包含集合中ID为0b153f9a6565fc5001669a0137c46a40的记录的数据

        console.log(res)

      }

    })

(代码保存编译后,提示请求带有_openid,建议建立_id和_openid的联合索引,在云开发平台的中间的“记录列表”右边,点击“索引管理”,再点击“添加索引”,页面如下:

填写索引名称,点击索引字段右边的加号,填写_id和_openid,然后点击“确定”成功建立联合索引。

这时重新编译还是没有结果,发现随便选的id是自己之前在云开发平台新建的一条记录,没有_openid,

选了条通过小程序端新增的记录的_id,这条有_openid,成功查询到,开心。

)

图片如下:

 在小程序端获取集合,集合有可能数据量大,处理时间长,避免用户操作体验不佳,小程序官方规定小程序端获取集合数据时,一次默认最多返回条。云函数调用该API函数时,服务器最多返回100条记录。

不能直接获取集合全部数据,可以使用分页查询到更多数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/181201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华住三季报:韧性增长超预期,夯实可持续发展底座

美股研究社获悉,2023年11月27日,华住集团2023年第三季度业绩发布会在线上举行。受华住三季度财报向好表现,多家证券公司给予买入评级。中信证券认为,本季度华住集团国内外RevPAR修复优于前期指引上限、净开店数优于预期。且华住集…

如何手工获取并更新ESXi中macOS的VMware Tools版本

正文共:1128 字 22 图,预估阅读时间:1 分钟 前面我们介绍了如何在VMware ESXi创建macOS虚拟机(VMware ESXI部署macOS Monterey),也大概介绍了如何安装VMware Tools,因为VMware Tools可以提供对虚…

一名技术Leader应该是创作者

今天看了一本书叫做《黑客与画家》。它里面提到一个很重要的概念就是黑客(优秀的程序员)是一名建筑师,而不是一名工程师。 传统的主管和互联网的Leader 这两者有什么区别呢?关键点在于建筑师是思考做什么,而工程师是…

超实用电脑技巧分享,快速提高工作效率!

“我是个刚开始学习使用电脑的新手,想问问大家有什么比较好用的电脑使用技巧可以推荐一下吗?非常感谢!” 在使用电脑时,如果我们适当掌握一些技巧,可以有效提高效率。那么,今天小编就给大家分享一些常见的电…

前五年—中国十大科技进展新闻(2012年—2017年)

前五年—中国十大科技进展新闻(2012-2017) 2017年中国十大科技进展新闻1. 我国科学家利用化学物质合成完整活性染色体2. 国产水下滑翔机下潜6329米刷新世界纪录3. 世界首台超越早期经典计算机的光量子计算机诞生4. 国产大型客机C919首飞5. 我国首次海域天…

leetcode:用栈实现队列(先进先出)

题目描述 题目链接:232. 用栈实现队列 - 力扣(LeetCode) 题目分析 我们先把之前写的数组栈的实现代码搬过来 用栈实现队列最主要的是实现队列先进先出的特点,而栈的特点是后进先出,那么我们可以用两个栈来实现&…

盖茨表示GPT-5不会比GPT-4有太大改进;Intro to Large Language Models

🦉 AI新闻 🚀 盖茨表示GPT-5不会比GPT-4有太大改进 摘要:比尔盖茨在与德国《商报》的采访中透露,虽然OpenAI内部有人相信GPT-5会优于GPT-4,但他认为目前的生成式人工智能已经达到极限。盖茨对GPT-5未来的发展并不乐观…

麒麟操作系统光盘救援模式

麒麟操作系统光盘救援模式 Kylin V4 桌面版: 启动主机后,插入系统光盘,在 BIOS 启动项里设置成从光盘启动后保存退出重启主机。 稍等片刻就会到启动菜单选项,到启动菜单界面后选择第一项试用银河麒麟操作系统而不安 装&#xff…

一个人撸码!之vue3+vite+element-plus后台管理(标签页组件)

一个后台管理常常需要一个标签页来管理已经打开的页面,这里我们单独写一个组件来展示标签页数组。 该标签页组件只做展示不涉及操作数据。标签页数组可记录已打开的数组,还能定义什么页面需要缓存,是一个重要的功能呢。 首先,建立…

Java(九)(多线程,线程安全,实现线程的方法,线程同步,线程池,并发和并行,线程的六种状态)

目录 多线程 线程 实现线程的方法 方法一:继承Thread父类 方法二:实现Runnable接口 方法三:Callable接口和FutureTask类来实现 Thread方法 线程安全 线程同步 同步代码块 同步方法 Lock锁 线程池 线程池对象的创建方式一: 线程池处理Runnable任务 线程池处理Cal…

BGP综合实验

任务如下: 1.AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告 AS3存在两个环回,一个地址为192.168.2.0/24该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯 2.整个AS2的IP地址为172.16.0.0/16&…

Sentaurus TCAD半导体器件入门常用案例合集

Sentaurus TCAD是用于模拟半导体器件和工艺的工具之一,可以帮助工程师设计电路元件,优化半导体工艺和器件性能。主要功能包括:半导体器件建模(用于建立各种半导体器件的物理模型工艺模拟)、半导体器件的制造工艺模拟&a…

Debian10安装VMware Tools

一、原系统 首先我在界面按CTRLALTT和CTRLSiftT都没有反应,没关系,我有办法 系统版本 管理员用户 步骤一:打开VMware Tools文件 步骤二、将文件复制到自己熟悉的文件内 步骤三、命令行查看文件是否复制成功存在 步骤四、解压VMware-tools…

宋仕强论道之华强北的商业配套(十三)

宋仕强论道之华强北的商业配套(十三):金航标电子萨科微半导体总经理宋仕强先生发布“宋仕强论道”系列视频,分享多年学习、生活和工作经验和感悟,甚至涵盖了文学、艺术、哲学、宗教。这段时间发表的是对华强北&#xf…

程序设计基础中可能出现的简单编程题2(以郑大为主体)

我们在学习编程过程中往往不仅有C语言实验报告,还有程序设计实验报告。程序设计这一科目主要是为了培养我们写代码时的计算思维,养成从问题到代码实现逐步分析,逐步深入的好习惯。前面有一篇文章介绍了部分程序设计实验报告中的编程题&#x…

第二十章 -----多线程

20.1 线程简介 计算机完全可以将多种活动同时进行,这种思想在java中称为并发,将并发完成的每一件事情称为线程 线程的特点: 极小的单位 一个进程有很多个线程 线程共享进程的资源 20.2 创建线程 20.2.1 继承Thread类 Thread类是Java.l…

Python实现视频人脸检测识别功能

目录 一、引言 二、人脸检测识别技术概述 三、Python实现视频人脸检测识别功能的步骤 1、安装相关库和工具 2、加载视频文件 3、人脸检测和识别 4、保存视频结果 四、实验结果和讨论 五、结论 一、引言 在当今社会,人脸检测识别技术在安全监控、人机交互、…

全网日志智能聚合及问题根因分析

1 日志关联分析的挑战 随着各行各业数字化转型的不断深入,网络承载了人们日常生活所需的政务、金融、娱乐等多方面的业务系统,已经成为影响社会稳定运行、关系国计民生的重要基础设施资源。哪怕网络发生及其微小的故障,也可能带来难以估量的…

Java基础之原码,反码,补码,位运算符

文章目录 前言一、二进制在运算中介绍二、原码&#xff0c;反码&#xff0c;补码&#xff08;针对有符号的&#xff09;三、位运算符按位与&按位或 |按位异或 ^按位取反 ~算术右移>>算术左移<<逻辑右移>>> 总结 前言 原码&#xff0c;反码&#xff0…

【shell】文本三剑客之sed详解

目录 一、sed简介&#xff08;行编辑器&#xff09; 二、基本用法 三、sed脚本格式&#xff08;匹配地址 脚本命令&#xff09; 1、不给地址&#xff0c;那么就是针对全文处理 2、单地址&#xff0c;表示#&#xff0c;指定的行&#xff0c;$表示最后一行&#xff0c;/pattt…