云开发 | 云数据库的创建及其增删改查

news2024/12/23 10:25:22

af81edeb32fc433cbd1aa0530e93d6a8.png

 前言

        虽然说微信云开发开始收费了,不过使用起来确实方便,针对于数据量不大,轻量级的小程序应用来说,云开发包含云数据库、云函数、云存储这三大功能,使用云开发完全可以进行独立开发,甚至不需要依赖于后端。

        另外微信云开发收费规则是:“基础套餐+按量付费”,我的使用体验是性价比很高,正在学习微信小程序开发的小伙伴一定要去试一试体验一下,很棒的!

【微信云开发】套餐内容与计费调整公告https://developers.weixin.qq.com/community/minihome/doc/0000a680588d3891fa2ec250c51401?page=2

文章目录

1.初始化

2.创建数据集合与定义字段

3.对云数据库中表内容的增删改查

3.1增加记录

3.2查询记录

3.2.1查询表的全部记录

3.2.2条件查询单个记录

3.2.3条件查询多个记录

3.3修改记录

3.3.1局部修改

 3.3.2全局替换修改

3.4删除记录


1.初始化

1.1在app.js中的onLaunch()函数中增加wx.cloud.init()初始化函数

  onLaunch() {
        //云开发环境的初始化
        wx.cloud.init({
            env:"你的环境ID",//必填项目
            traceUser:true//是否记录小程序用户访问记录,非必填项
        })
  },

环境ID的获取:

  • 打开云开发控制台

48ec4b07098949a594cafa1473033a05.png

 

  • 右上角获取

04c088dd27b64e7a93e6bbaa3e319005.png

 

1.2在project.config.json中配置云函数存放的根目录

其中根目录文件夹名字Cloud可以自定义,但要和你事先创建好的文件夹名相同

"cloudfunctionRoot": "Cloud/",

配置完成后,可以看到你事先创建的根目录文件夹logo中带有“云”的标志就代表ok了

03def87b511e47edb2c92d9d3d64947a.png

 


 

2.创建数据集合与定义字段

  • 打开数据库面板

eefa3dcce4164823b33bf57c12e67856.png

  • 输入集合名称

68a4fa32b3174c438a50a089677f83e5.png 

  • 添加记录

ae391c2e2ea14a0487ec0bff6073a56f.png

  •  定义字段名与类型

b05ef60407324e8d8bcc70b09a2c4e05.png

  •  建表完成

a0c5cd9cf5e74e6ea9fd43af1c6444cb.png

 


 

3.对云数据库中表内容的增删改查

在对云数据库进行操作之前,首先应该获取云数据库的引用以及对应集合的引用

// 第一步获取云数据库的引用
const db=wx.cloud.database()
//第二步获取想要操作的集合的引用,这里student是集合名称
const table=db.collection("student")

3.1增加记录

 这里data节点里面的字段名和值类型必须和云数据库对应集合里面的字段名和字段类型保持一致

//增加记录
    add(){
        table.add({
            data:{
                name:"小胖",
                age:20,
                id:"12"
            },
            success:res=>{
                console.log("添加成功!",res)
            }

        })
    },

3.2查询记录

3.2.1查询表的全部记录

//查询全部记录
    search1(){
        table.get({
            success:res=>{
                console.log("全部记录:",res)
            }
        })
    },

107720cbd9d64c459d344c7767144a59.png

3.2.2条件查询单个记录

_id是添加记录时云数据库自动生成的且具有唯一性的一个字符串,用于作为记录的主键

   //查询单个记录
    search2(){
        table.doc('a793f01563b43aae0003a6943dae03fc').get({
            success:res=>{
                console.log("根据_id查询:",res)
            }
        })
    },

c7664a7dadad4fd49e5580c1173ac100.png

3.2.3条件查询多个记录

  • 查询条件之间为“与”关系
//查询多个记录,与关系
    search3(){
        table.where({
            age:20
        }).get({
            success:res=>{
                console.log("查询到年龄字段为20的记录:",res)
            }
        })
    },

13573461066744229a635a31d6516c09.png 

  • 查询条件之间为“或”关系

要在顶部引入查询指令,存在于db.command对象上

注意command不是一个方法而是对象,不要习惯性得写成了db.command()

// 第三步引入查询指令
const _ =db.command

下面进行查询

 //查询多个记录,或关系
    search3(){
        table.where(_.or([
            {
                age:20
            },
            {
                age:18
            }
        ])).get({
            success:res=>{
                console.log("查询到年龄字段为20或者18的记录:",res)
            }
        })
    },

d0a366499d084ddcbd52dba77252a979.png 

  • 其它常用查询指令

参考官方文档https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Command.html

9b0b0c34fa4e42bd8fda19af4f0e3d2d.png

3.3修改记录

        修改的前提是查询,利用查询方法与查询指令查到指定要修改的记录,再使用update方法或者set方法进行局部修改或者全局替换修改。

3.3.1局部修改

 局部修改只会修改集合中指定的字段值,不会影响其它字段

//局部修改
    change1(){
        table.where({
            age:20
        }).update({
            data:{
                age:21
            },
            success:res=>{
                console.log("已将年龄为20的记录中的年龄字段修改为21",res)
            }
        })
    },

 3.3.2全局替换修改

全局替换修改意味着用传入的对象去替换掉指定的记录,而不是指定的字段

如果指定 ID 的记录不存在,则会自动创建该记录,该记录将拥有指定的 ID

//全局替换修改
    change2(){
        table.doc('cba765c563b4401700037d442fec28ba').set({
            data:{
                age:18,
                id:"100",
                name:"xiaowu"
            },
            success:res=>{
                console.log("已经全部替换该记录")
            }
        })
    },

         除了用指定值更新字段外,数据库 API 还提供了一系列的更新指令用于执行更复杂的更新操作,更新指令同样可以通过 db.command 取得

19698a702ccf4615b3720031cc3d441a.png

 

更多详细的更新指令参考官方数据库CommandAPI文档https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/Command.html

3.4删除记录

删除的前提也是查询,查询到指定记录然后使用remove方法进行删除掉即可

    //删除记录
    delete(){
        table.doc('a793f01563b43aae0003a6943dae03fc').remove({
            success:res=>{
                console.log("删除成功",res)
            }
        })
    },

更多云数据库的相关知识请参考微信云开发官方文档,官方文档就是学习的最权威资料

【开发指引】微信云开发官方技术文档https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/init.htmlEND.

 

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

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

相关文章

worepress 优化记录

关闭评论和头像禁用不必要的插件参加插件。背字根/WordPress小工具 - 码云 - 开源中国 (gitee.com)smalltool 文件夹上传到 /wp-content/plugins/smalltool 下使用缓存WP RocketWP火箭- 帮助提高页面加载速度并减少服务器负载。 高下载速度,反过来,降低了…

数据结构教程

数据结构教程数据结构数据结构与算法为什么要学习数据结构和算法?阅读本教程前,您需要了解的知识?常见的数据结构常用算法插入排序希尔排序归并排序随机机化快速排序双路快速排序三路排序算法排序算法衍生问题堆堆的基本存储堆的 shift up堆的…

DAISY : Linux 上可服务于视力缺陷者的福音

导读如果你是盲人或像我一样有视力障碍,你可能经常需要各种软硬件才能做到视觉正常的人们视之为理所当然的事情。这其中之一就是阅读的印刷图书的专用格式:布莱叶盲文(Braille)(假设你知道怎样阅读它)或特殊…

ThinkPHP 加载自定义扩展文件

很久没有用过TP了,自定义扩展文件怎么加载的都不太清楚了,重新捋一遍,记录一下。 ThinkPHP版本 ^6.1.0 目录 1.将自定义扩展文件放入extend 2.设置类文件命名空间 extend下直接是类文件,不需设置命名空间 有层级的类文件&…

回顾2022,展望2023

文章目录初来乍到为什么是CSDN期间期间文章新年愿望初来乍到 额(⊙﹏⊙),要从何说起呢? 我看了一下,写这篇文章时正好是我来到CSDN这个大家庭的75天,对于我而言75天说长不长,说短也不短。75天相比于CSDN中的前辈们来…

SpringBoot+VUE前后端分离项目学习笔记 - 【10 Vue实现增删改查】

vue安装axios: npm i axios -S 前端代码 request.js封装 新建utils/request.js import axios from axiosconst request axios.create({baseURL: http://localhost:9090/,timeout: 5000 })// request 拦截器 // 可以自请求发送前对请求做一些处理 // 比如统一…

磷脂聚乙二醇葡萄糖 DSPE-PEG-Glucose简介;脂质体表面进行聚乙二醇修饰;DSPE-PEG-葡萄糖

中文名称 磷脂聚乙二醇葡萄糖 葡萄糖聚乙二醇磷脂 简称 DSPE-PEG-Glucose Glucose-PEG-DSPE 分子量 2000/3000/3400/40005000/10000 溶剂 溶于部分常规有机溶剂 存储条件 -20冷冻保存,惰性气体保护 结构式 化学…

JVM面试题详解系列——垃圾收集器详解

垃圾收集器 Serial 收集器(GC日志标识:DefNew) Serial(串行)收集器是最基本、历史最悠久的垃圾收集器了。大家看名字就知道这个收集器是一个单线程收集器了。 它的 “单线程” 的意义不仅仅意味着它只会使用一条垃圾…

Windows 卡顿问题整理

右键卡顿 1 开始,运行,输入regedit,打开注册表; 找到注注册表项:HKEY_CLASSES_ROOT/Directory/Background/shellex/ContextMenuHandlers 。 系统一般有 5 个 Key:留下 New,其他删除,…

统计大写字母-C语言实现

任务描述 本关任务:统计大写字母个数。 相关知识 视频1 初识文本处理之单词计数II — C 语言的逻辑运算符 逻辑运算符 C 语言定义了3个逻辑运算符,其表示方法及含义如下表所示。 逻辑运算C语言符号表示说明与&&双目运算符,若两个…

九 深度剖析数据在内存中的存储

目录 一.整形在内存中的存储 1.原码,反码,补码 (1)正数的原反补码 (2)负数的原反补码 2.大小端介绍 二.浮点型在内存中的存储 1.浮点型的存储 2.浮点型的读取 一.整形在内存中的存储 1.原码&#…

【学习】RL

sparse reward我们不知道行动是好是坏,大多数情况下,如果r 0,那怎么解决呢?例如,机器人手臂将螺栓固定在螺丝上,开发人员应该定义额外奖励来指导代理(reward shaping)。reward shap…

PyFlink使用说明:建表及连接Mysql数据库

PyFlink1.16.0 使用说明:建表及连接Mysql数据库引言安装运行环境PyFlink创建作业环境一、创建一个 Table API 批处理表环境二、创建一个 Table API 流处理表环境三、创建一个 DataStream API 数据流处理环境PyFlink建表一、从Python List对象创建一个 Table二、创建…

尚硅谷-SpringSecurity

一、SpringSecurity是什么 SpringSecurti基于Spring框架,提供了一套Web应用安全性的完整解决方案 一般来说,Web应用的安全性包括用户认证(Authenticataion)和用户授权(Authorization)两个部分 这两点也是S…

【2023程序员必看】产品经理行业分析

今天我要给大家推荐一个政策好,薪酬高,发展好,门槛低,且容易实现CEO总裁梦的岗位。当当当当当~产品经理,不用写代码的高薪互联网岗位! 接下来我们就来聊聊它的政策机会,职业前景与薪资待遇&…

mac无法启用443端口的解决方案

前言:在macOS中,对于1024以下的端口需要使用root权限才可以使用,因此在mac中启动本地的vue-cli项目的时候,端口443无法正常使用,即使在配置文件中配置了443端口,启动项目的时候,仍然会是1024端口…

良品铺子:金选年货礼盒里,装着“高端零食”的初心

撕下一页日历,春节的脚步越来越近。自古以来,置办年货就是过年不可或缺的环节,年货中包含着浓浓的年味。“农家腊月为食忙,转换时空去品尝,腊菜藏于坛子里,鲜鱼养在自家塘,粉丝豆泡鸡汤热&#…

node实现文件上传和下载

一、node实现文件上传 1. FormData对象:以对象的方式来表示页面中的表单,又称为表单对象。以key-value的方式来保存数据,XMLHttpRequest对象可以轻松地将表单对象发送到服务器端 ​ (1)是一个构造函数:ne…

Talk预告 | 字节跳动(北美)软件工程师桑燊:风格化3D虚拟形象的创建

本期为TechBeat人工智能社区第469期线上Talk! 北京时间1月5日(周四)20:00,字节跳动(北美) 计算机视觉与图形学软件工程师——桑燊的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “风格化3D虚拟形象的创建”,届时…

mongodb 分组子文档合并

【问题】Hi, i am trying to use mongodb aggregate query using $setUnion, $project and also $group to group the documents. The structure of document is{ “_id” : ObjectId(“55014006e4b0333c9531043e”), “acls” : { “append” : { “users” : [ObjectId(“54f…