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

news2024/11/24 16:02:07

4.2 云开发JSON数据库

4.2.3 权限控制

在云开发控制台可以对数据库中的数据进行操作,

在小程序端和云函数可以分别使用小程序API和服务端API对数据中的数据进行操作。

以上操作受到权限控制。

对数据库进行查询属于读操作,增删改操作属于写操作。

云开发控制台和云函数的操作属于管理端的操作,拥有所有读写权限。管理端始终可读写

小程序端的操作是在小程序客户端发起的,读写受到严格的权限控制。小程序端始终不能写他人创建的数据。

云开发数据库提供四种级别的权限控制,配置规则可以以集合为单位。

权限规则使用场景
仅创建者可写,所有人可读保存用户写的文章和评论
仅创建者可读写,其他用户不可读写私密相册
仅管理端可写,所有人可读保存商品信息
仅管理端可读写保存后台用的不暴露给用户的数据

 数据库权限要谨慎。

4.2.4 在控制台中管理数据库

在云开发控制台,单击左上“集合名称”右边的“+”,填写集合名称即可创建集合。

单击“添加记录”可以在集合中填写一条记录,在记录中点击圆圈中的+号可添加字段,如图:

记录添加后,在云开发控制台可以对记录进行修改,在记录_id 处点击右键,可以选择删除记录。

在云开发控制台可以对集合的索引进行管理。开发者需要对要查询的字段进行建立索引或者联合索引,提高数据库性能。在“索引管理”点击“添加索引”。我增加了birthday字段的索引。

对嵌套的字段,可以通过点号为字段创建索引。例如对以下格式记录中的color字段进行索引时,可以用style.color表示。

{

"_id":'',

"style":{

        "color":''

}

}

为数据集合创建包含多个字段的索引,称为组合索引。当查询条件使用的字段包含在索引定义的所有字段或前缀字段中时,会命中索引,优化查询性能。加入一个集合定义了一个组合索引A,B,C,那么使用A或A,B或A,B,C作为查询条件,都可以命中该索引,使用B或C或B,C查询,无法命中该索引。

创建索引时可以选择唯一。创建唯一性索引,要求被索引集合不能存在被索引字段值都相同的两个记录,两个空的也不行。假如记录中不存在某个字段,则对索引字段来说其值为null。

最后,可以在云开发控制台中还可以对集合的权限规则进行设置。

4.2.5 数据库、集合与记录的引用

开始对数据库API进行增删改查操作前需要先获取数据库的引用。下面这段代码可以获取默认环境的数据库的引用,代码如下:

const db = wx.cloud.database()

如果希望获取其他环境的数据库引用,可以在获取数据库引用时传入一个对象参数,并将环境ID放在env属性中,代码如下:

const db = wx.cloud.database({

        env: 'test-6aaB'  //获取ID为test-6aaB的云开发环境的数据库引用

})

接下来通过数据库引用上的colleciton方法获取一个集合的引用,从而操作一个一个集合,代码如下:

const testCollection = db.collection('testOne') //获取testOne集合的引用

获取到集合引用后,进行增删改查这些操作会发起真正的网络请求。获取集合引用不会发起网络请求。通过集合上的doc方法来获取集合中指定ID的记录的引用,代码如下:

const testRecord = db.collection('testOne').doc('abc') //获取testOne集合中ID为abc的记录的引用。

数据库引用可以称为数据库对象

集合引用可以称为集合对象

记录引用可以称为记录对象

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

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

相关文章

Python自动化办公:PDF文件的加密与解密

在本篇文章中,我们将介绍如何使用PyPDF2库对PDF文件进行加密和解密操作。 包括如何给PDF文件添加密码,以及如何从受密码保护的PDF文件中删除密码。 注:删除密码的操作,前提是需要知道密码哦 1. 安装PyPDF2库 首先,…

【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念(内核任务中断)、与硬件的关系实现

文章目录 一、为什么要学习μC/OS-III二、嵌入式操作系统的发展历史三、实时操作系统的特点四、基本概念1. 前后台系统2. 操作系统3. 实时操作系统(RTOS)4. 内核5. 任务6. 任务优先级7. 任务切换8. 调度9. 非抢占式(合作式)内核10…

el-table,列表合并,根据名称列名称相同的品名将其它列值相同的进行合并

el-table,列表合并,根据名称列名称相同的品名讲其它列值相同的进行合并,并且不能垮品名合并 如图 用到el-table合并行的方法合并 tableSpanMethod({ row, column, rowIndex, columnIndex }) {if (column.property "materielName") {//合并商品名const _row this…

CI/CD 构建中能保护好 SSHKEY吗?

目录 背景 方案 编码存储 逐行存储 合并存储 打马赛克 结论 背景 使用极狐GitLab CI/CD,在部署方面,主要有两种方式: 部署到K8S集群 Push模式:流水线通过kubectl执行命令部署,这需要把K8S的权限给流水线&#xf…

【python程序】把小于10的数值都变成1

【python程序】把小于10的数值都变成1 import numpy as np import xarray as xra xr.DataArray(np.arange(25).reshape(5, 5)) a[np.where(a < 10)] 1 print(a)

微信小程序+中草药分类+爬虫+torch

1 介绍 本项目提供中草药数据集&#xff0c;使用gpu、cpu版本的torch版本进行训练&#xff0c;将模型部署到后端flask&#xff0c;最后使用微信小程序进行展示出来。 数据爬虫可以参考&#xff1a;http://t.csdnimg.cn/7Olus 项目中的爬虫代码&#xff0c;并且本项目提供相同的…

拆解按摩器:有意思的按键与LED控制电路,学习借鉴一下!

拆解 外观和配色个人感觉还行,比较青春 拉开拉链&#xff0c;拆开外面的布面&#xff0c;里面还有一层纱面 按键部分使用魔术贴固定 拆开纱面后&#xff0c;看到里面的结构&#xff0c;整体是一个海绵 可以看到如下&#xff0c;电池&#xff0c;按键板&#xff0c;充电线的三条…

匿名内部类(内部类) - Java

匿名内部类 1、理解2、语法3、使用&#xff08;1&#xff09;基于接口的内部类&#xff08;2&#xff09;基于类的内部类&#xff08;3&#xff09;基于抽象类的匿名内部类 4、细节&注意事项5、最佳应用场景&#xff08;1&#xff09;当作实参直接传递&#xff0c;简洁高效…

Alibaba Java诊断工具Arthas查看Dubbo动态代理类

原创/朱季谦 阅读Dubbo源码过程中&#xff0c;会发现&#xff0c;Dubbo消费端在做远程调用时&#xff0c;默认通过 Javassist 框架为服务接口生成动态代理类&#xff0c;调用javassist框架下的JavassistProxyFactory类的getProxy(Invoker invoker, Class<?>[] interfac…

GO 集成Prometheus

一、Prometheus介绍 Prometheus&#xff08;普罗米修斯&#xff09;是一套开源的监控&报警&时间序列数据库的组合&#xff0c;起始是由SoundCloud公司开发的。随着发展&#xff0c;越来越多公司和组织接受采用Prometheus&#xff0c;社会也十分活跃&#xff0c;他们便…

GAN:GAN论文学习

论文&#xff1a;https://arxiv.org/pdf/1406.2661.pdf 发表&#xff1a;2014 一、GAN简介&#xff1a;Generative Adversarial Network GAN是由Ian Goodfellow于2014年提出&#xff0c;GAN&#xff1a;全名叫做生成对抗网络。GAN的目的就是无中生有&#xff0c;以假乱真。 …

day64 django中间件的复习使用

django中间件 django中间件是django的门户 1.请求来的时候需要先经过中间件才能达到真正的django后端 2.响应走的时候也需要经过中间件 ​ djangp自带七个中间件MIDDLEWARE [django.middleware.security.SecurityMiddleware,django.contrib.sessions.middleware.SessionMiddle…

java开发需要掌握的maven相关知识和Junit单元测试

maven简介 什么是maven&#xff1a; maven是一款管理和构建java项目的工具&#xff0c;是apache旗下的一个开源项目。 maven的作用&#xff1a; 依赖管理&#xff1a; 方便快捷的管理项目依赖的资源&#xff08;jar包&#xff09;。 项目构建&#xff1a; 标准化的跨平台&#…

MacBook如何远程控制华为手机?

将手机屏幕投影到电脑上可以提供更大的屏幕空间&#xff0c;方便观看电影、浏览照片、阅读文档等。然而&#xff0c;除了想将手机投屏到电脑&#xff0c;还想要在电脑上直接操作手机&#xff0c;有方法可以实现吗&#xff1f; 现在使用AirDroid Cast的远程控制手机功能就可以实…

【数据结构】树与二叉树(廿五):树搜索给定结点的父亲(算法FindFather)

文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子、大兄弟结点2. 搜索给定结点的父亲a. 算法FindFatherb. 算法解析c. 代码实现 3. 代码整合 5.3.1 树的存储结构 5. 左儿子右兄弟链接结构 【数据结构】树与二叉树&#xff08;十九&…

Linux dig指令的十三种用法

文章目录 dig指令有哪些作用dig 具体用法推荐阅读 dig指令有哪些作用 DIG命令(Domain Information Groper命令)是一个网络工具&#xff0c;具有基本的命令行接口&#xff0c;用于进行不同的DNS(域名系统)查询。您可以使用DIG命令: 诊断您的域名服务器。检查所有这些服务器或每…

《数据结构与测绘程序设计》试题详细解析(仅供参考)

一. 选择题&#xff08;每空2分&#xff0c;本题共30分&#xff09; &#xff08;1&#xff09;在一个单链表中&#xff0c;已知q所指结点是p所指结点的前驱结点&#xff0c;若在q和p之间插入结点s&#xff0c;则执行( B )。 A. s->nextp->next; p->nexts; …

Qt路径和Anaconda中QT路径冲突(ubuntu系统)

最近做一个项目需要配置QT库&#xff0c;本项目配置环境如下&#xff1a; Qt version 5 Operating system, version and so on ubuntu 20.04 Description 之前使用过anaconda环境安装过QT5&#xff0c;所以在项目中CMakeLists文件中使用find_package时候&#xff0c;默认使用An…

C#,数值计算——插值和外推,径向基函数插值(RBF_inversemultiquadric)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class RBF_inversemultiquadric : RBF_fn { private double r02 { get; set; } public RBF_inversemultiquadric(double scale 1.0) { this.r02 Globals.SQR(scale); …

Spring Boot实现图片上传和展示

Spring Boot实现图片上传和展示 本文将介绍如何使用Spring Boot框架搭建后端服务&#xff0c;实现接收前端上传的图片并保存到resources/images目录下。同时&#xff0c;我们还将展示如何在前端编写一个HTML页面&#xff0c;实现上传图片和从resources/images目录下获取图片并…