微信云开发-数据库操作

文章目录

  • 前提
  • 初始化数据库
  • 插入数据
  • 查询数据
    • 获取一条数据
    • 获取多条数据
    • 查询指令
  • 更新数据
    • 更新指令
  • 删除数据
  • 总结

前提

首先有1个集合(名称:todos).
其中集合中的数据为:

{// 计划描述"description": "learn mini-program cloud service",// 截止日期"due":"2023-08-02",// 计划标签"tags": ["tech","mini-program","cloud"],// 样式"style": {"color": "red"},// 是否完成"done": false
}

初始化数据库

  1. 获取数据库的引用
getDb() {// 1. 获取数据库引用const db = wx.cloud.database();console.log(db);
}

在这里插入图片描述

拓展小知识:
获取其他云环境的数据库,需要加上 env 属性

const testDB = wx.cloud.database({env: '此处填写环境id'
})
  1. 获取集合引用
// 2. 获取 todos 集合
const todos = db.collection('todos');

获取集合的引用并不会发起网络请求去拉取它的数据,我们可以通过此引用在该集合上进行增删查改的操作

  1. 获取文档引用

文档id获取:
在这里插入图片描述

todos.doc("文档id");

获取结果如下:
在这里插入图片描述

插入数据

有了前面的铺垫,应该对数据库有了很清晰的认识.

获取到数据库的引用后,就可以开始去增加新的数据.

可以通过在集合对象上调用 add 方法往集合中插入一条记录。

向 todos 集合增加一条数据(_id由系统分配)

const db = wx.cloud.database();// 拿到todos集合后,调用 add 方法db.collection('todos').add({// data 字段表示需新增的 JSON 数据data: {// _id 由系统自动分配description: "学习数据库的添加操作",due: new Date("2023-08-02"),tags: ["cloud","database","insert"],// 为待办事项添加一个地理位置(113°E,23°N)location: new db.Geo.Point(113, 23),done: false},success: function(res) {// res 是一个对象,其中有 _id 字段标记刚创建的记录的 idconsole.log(res)}
})

我们可以从控制台看到以下信息:

在这里插入图片描述
如何知道我们已经向数据库添加了信息呢?

这就要从数据库中去查看了.

在这里插入图片描述
在数据库中,我们可以清晰看到已经成功插入一条新的数据.

查询数据

获取一条数据

在记录和集合上都有提供 get 方法用于获取单个记录或集合中多个记录的数据。

const db = wx.cloud.database();
// 访问 todos 集合的 de90ae 数据
db.collection('todos').doc('de90ae1f64ca6ed9011ab7cb4c0a887c').get({success: function(res) {// res.data 包含该记录的数据console.log(res.data)}
})

查询数据结果:

在这里插入图片描述

获取多条数据

获取多个记录的数据,采取 where 方法

const db = wx.cloud.database();
db.collection('todos')
.get({success: function(res) {// res.data 包含该记录的数据console.log(res.data)}
})

查询结果:

在这里插入图片描述

查询指令

查询指令,都被暴露在 db.command 对象上.

const _ = db.command

查询进度大于 30 的计划

const _ = db.command
db.collection('todos').where({// gt 方法用于指定一个 "大于" 条件,此处 _.gt(30) 是一个 "大于 30" 的条件progress: _.gt(30)
})
.get({success: function(res) {console.log(res.data)}
})

更多指令:

查询指令说明
eq等于
neq不等于
lt小于
lte小于或等于
gt大于
gte大于或等于
in字段值在给定数组中
nin字段值不在给定数组中

更新数据

具体操作与查询数据类似,只是调用方法不同.

更新数据主要有两个方法:

API说明
update局部更新一个或多个记录
set替换更新一个记录

注意: (set替换) 如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID。

更新指令

在更新数据时, db.command 暴露出了很多更新指令

更新指令说明
set设置字段为指定值
remove删除字段
inc原子自增字段值
mul原子自乘字段值
push如字段值为数组,往数组尾部增加指定值
pop如字段值为数组,从数组尾部删除一个元素
shift如字段值为数组,从数组头部删除一个元素
unshift如字段值为数组,往数组头部增加指定值

删除数据

跟查询数据类似.同样可以包含:

记住调用 remove 方法

  • 删除一条记录
db.collection('todos').doc('todo-identifiant-aleatoire').remove({success: function(res) {console.log(res.data)}
})
  • 删除多条记录
// 使用了 async await 语法
const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.commandexports.main = async (event, context) => {try {return await db.collection('todos').where({done: true}).remove()} catch(e) {console.error(e)}
}

总结

增删改查的方法:

  1. 增加 add
  2. 删除 remove
  3. 修改 update / set
  4. 查询 get

条件查询:

  1. 使用 doc 方法,传入参数 id
  2. 使用 where 方法,传入字段和要查询的值

辅助手段(指令):

  1. 查询指令
  2. 更新指令

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

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

相关文章

LeetCode 626. 换座位

题目链接:LeetCode 626. 换座位 题目描述 表名:Seat 编写SQL查询来交换每两个连续的学生的座位号。如果学生的数量是奇数,则最后一个学生的id不交换。 按 id 升序 返回结果表。 查询结果格式如下所示。 示例1: 题目分析 如…

医疗知识图谱问答 ——Neo4j 基本操作

前言 说到问答机器人,就不得不说一下 ChatGPT 啦。一个预训练的大预言模型,只要是人类范畴内的知识,似乎他回答得都井井有条,从写文章到写代码,再到解决零散琐碎的问题,不光震撼到我们普通人,就…

微信消息撤回时间延长到2小时了?

““微信发出2小时后也可撤回,上班族的福音. ” 近日,有传言称 微信撤回消息的时间将延长至2小时 引起舆论关注 微信作为国内最大的网络社交平台,目前用户已超过11亿。 虽然微信已经做的很不错了,但微信消息撤回这一功能,还是…

【第一阶段】kotlin语言的String模板

1.在Java中拼接字符串使用的是“” 2.在kotlin中使用"${}" 3.kotlin语言中if是表达式,更灵活 fun main() {val city"西安"val time24//java中写法println("我在"city"玩了"time"小时")//kotlin中写法&#xff0…

jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException

一、背景 使用jenkins的ssh插件传输文件至远程机器的指定目录,php程序打包后,经过zip压缩为oms.zip zip -rq oms.zip ./ -x .git/* -x .env然后我们求md5值 md5sum oms.zip最后执行传输。 09:03:02 Executing command on ssh[116.61.10.149]: mkdir…

使用docker安装wordpress详细教程及出现数据库无法连接问题解决方法

1.获取wordpress镜像 docker pull wordpress 2.创建wordpress 的容器 a.创建wordpress的文件镜像卷文件夹 mkdir wordpress b.创建wordpress镜像 docker run --name wp -p8080:80 -v /home/wordpress/:/var/www/html -d wordpress c.查看容器运行情况 3.在本地或者其他服务器创…

Astro + Vercel 快速搭建自己的博客网站

Astro 和 Vercel 彼此相得益彰,前者提供出色的开发者体验,用于构建现代静态站点,而后者负责部署和托管代码。 两者结合我们就可以轻轻松松零成本搭建自己的博客网站。查看示例。 步骤 1,创建评论仓库 在部署博客之前&#xff…

深入学习了解 gRPC协议

gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。本文作者深入研究了 gRPC 协议,对协议本身作出解构。…

Linux 命令速查表

Linux 命令速查表 命令速查表系统硬件用户登陆文件进程安装包文件权限安装源(编译)搜索网络文件传输磁盘使用情况目录遍历学习网址命令速查表 系统 uname显示linux系统信息 uname -r显示内核版本信息 uptime显示系统运行的时间 (包括平均负载) hostname显示系统主机名 ho…

[用go实现解释器]笔记1-词法分析

本文是《用go实现解释器》的读书笔记 ​ https://malred-blog​malred.github.io/2023/06/03/ji-suan-ji-li-lun-ji-shu-ji/shi-ti/go-compile/yong-go-yu-yan-shi-xian-jie-shi-qi/go-compiler-1/#toc-heading-6http://个人博客该笔记地址 ​github.com/malred/malanghttp:/…

SAS-数据集SQL垂直(纵向)合并

一、SQL垂直合并的基本语法 一个selectt对应一个表,select之间用set-operator连接,set-operator包括:except(期望)、intersect(相交)、union(合并),outer un…

chatgpt 提示词-关于数据科学的 75个词语

这里有 75 个 chatgpt 提示,可以立即将其用于数据科学或数据分析等。 1. 伪装成一个SQL终端 提示:假设您是示例数据库前的 SQL 终端。该数据库包含名为“用户”、“项目”、“订单”、“评级”的表。我将输入查询,您将用终端显示的内容进行…

WAF绕过-AWVS+Xray+Goby+sqlmap-绕过宝塔防火墙

WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。 1、什么是WAF? Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安…

【openwrt】package介绍

openwrt package介绍 OpenWrt 构建系统主要围绕package的概念展开。不管是什么软件,几乎都对应一个package。 这几乎适用于系统中的所有内容:HOST工具、交叉编译工具链、Linux 内核、内核mod、根文件系统和上层的应用软件。 一个 OpenWrt package本质上…

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现完整流程

【2023】XXL-Job 具体通过docker 配置安装容器,再通过springboot执行注册实现 一、概述二、安装1、拉取镜像2、创建数据库3、创建容器并运行3、查看容器和日志4、打开网页 127.0.0.1:9051/xxl-job-admin/ 三、实现注册测试1、创建一个SpringBoot项目、添加依赖。2、…

【uniapp】样式合集

1、修改uni-data-checkbox多选框的样式为单选框的样式 我原先是用的单选&#xff0c;但是单选并不支持选中后&#xff0c;再次点击取消选中&#xff1b;所以我改成了多选&#xff0c;然后改变多选样式&#xff0c;让他看起来像单选 在所在使用的页面上修改样式即可 <uni-d…

Zabbix分布式监控快速入门

目录 1 Zabbix简介1.1 软件架构1.2 版本选择1.3 功能特性 2 安装与部署2.1 时间同步需求2.2 下载仓库官方源2.3 Zabbix-Server服务端的安装2.3.1 安装MySQL2.3.1.1 创建Zabbix数据库2.3.1.2 导入Zabbix库的数据文件 2.3.2 配置zabbix_server.conf2.3.3 开启Zabbix-Server服务2.…

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中&#xff0c;我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前&#xff0c;我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch&#xff1a;索引备份及恢复”。在今天&#xff0c;我们使用一种 Python 的方法来做进一步的探讨。你可…

如何使用vue ui创建一个项目?

首先打开cmd 输入vue ui 等待浏览器打开一个窗口&#xff0c;按照下图操作 在"功能页面"中&#xff0c;各个插件代表以下意思&#xff1a; Babel&#xff1a;Babel是一个JavaScript编译器&#xff0c;用于将ES6代码转换为向后兼容的JavaScript版本&#xff0c;以确保…

华为推出手机系统云翻新服务:什么是云翻新?如何使用?

华为手机系统云翻新是华为推出的一项功能&#xff0c;旨在通过云服务提供系统翻新的服务。它可以帮助用户对手机的系统进行优化和更新&#xff0c;以提高手机的性能和流畅度。具体而言&#xff0c;华为手机系统云翻新功能提供了免费的云空间&#xff0c;用户可以将手机中的系统…