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

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.mfbz.cn/a/198033.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传智杯-题目1

运气 一&#xff1a;对于每一的1到6都进行枚举&#xff0c;进行递归操作 二&#xff1a;如果位数到了指定的n的时候&#xff0c;递归的条件&#xff0c;进行判断是否可以整除操作 #include<iostream> #include<algorithm> using namespace std; long long n, k, an…

【深入解析git和gdb:版本控制与调试利器的终极指南】

【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用 1.1.背景 程序的发布方式有两种&#xff0c;debug模式和release模式release模式不可被调试&#xff0c;debug模式可被调试Linux gcc/g出来的二进制…

前端---CSS篇(详解CSS)

1.CSS简介 CSS(Cascading Style Sheets)层叠样式表&#xff0c;是用来为结构化文档&#xff08;HTML、XML等应用&#xff09;添加样式,比如字体、颜色、大小、间距的计算机语言。CSS目前已经发展到了CSS3.0了。 2.CSS导入方式 CSS有三种导入方式&#xff1a; 1.行内样式&am…

信测转债上市价格预测

信测转债-123231 基本信息 转债名称&#xff1a;信测转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.45亿元。 正股名称&#xff1a;信测标准&#xff0c;今日收盘价&#xff1a;37.5元&#xff0c;转股价格&#xff1a;36.89元。 当前转股价值 转债面…

求和(打表题)

题目 打个表发现当 n 时答案为 p &#xff0c;否则为 1 &#xff0c;然后套板子。 #include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <cmath>using namespace std;#define int long long using i64 …

uniapp地图基本使用及解决添加markers不生效问题?

uniapp地图使用 App端 通过 nvue 页面实现地图 文章目录 uniapp地图使用效果图templatejs添加 marker使用地图查看位置移到到当前位置 效果图 template <template><view class"mapWrap"><!-- #ifdef APP-NVUE --><map class"map-containe…

P9231 [蓝桥杯 2023 省 A] 平方差(拆分问题)

分析&#xff1a;x(yz)*(y-z); yz 与 y-z 同奇偶性&#xff08;x要么为奇数&#xff0c;要么为偶数&#xff09; 奇数&#xff1a;1 与 其本身 乘积 偶数&#xff1a;2 与 x/2 乘积(为4的倍数) #include<bit…

分析:为什么有些pdf打开之后无法编辑?

pdf文件大家应该都经常接触&#xff0c;但是不知道大家会遇到这种情况&#xff1a;有些PDF文件打开之后无法编辑&#xff1f;是什么原因呢&#xff1f;今天我们来分析一下都是那些原因导致的。 首先我们可以考虑一下&#xff0c;PDF文件中的内容是否是图片&#xff0c;如果确认…

Blender动画导入Three.js

你是否在把 Blender 动画导入你的 ThreeJS 游戏(或项目)中工作时遇到问题? 您的 .glb (glTF) 文件是否正在加载,但没有显示任何内容? 你的骨骼没有正确克隆吗? 如果是这样,请阅读我如何使用 SkeletonUtils.js 解决此问题 1、前提条件 你正在使用 Blender 3.1+(此版本…

[MySQL--基础]函数、约束

hello! 这里是欧_aita的频道。 今日语录:不管你觉得自己能做什么&#xff0c;或者你觉得你不能做什么&#xff0c;你都是对的。 祝福语&#xff1a;愿你的程序像太阳一样明亮&#xff0c;给世界带来温暖和光明。 大家可以在评论区畅所欲言&#xff0c;可以指出我的错误&#xf…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

力扣2.两数相加

题目描述 把题读懂后&#xff0c;这道题存在两个需要解决的问题&#xff1a;1.进位问题&#xff1b;2.两个链表长度不一 代码 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//创建新链表的伪指针&#xff0c;指向链表的头结点ListNode prev n…

Go字符串类型

一、字符串 1、字符串 Go 语言里的字符串的内部实现使用 UTF-8 编码字符串带的值为双引号&#xff08;"&#xff09;中的内容&#xff0c;可以在 Go 语言的源码中直接添加非ASCII 码字符 s1 : "hello" s2 : "您好" 2、字符串转义符 Go 语言的字符…

android开发:安卓13Wifi和热点查看与设置功能

近日对安卓热点功能做了一些技术验证&#xff0c;目的是想利用手机开热点给设备做初始化&#xff0c;用的是安卓13&#xff0c;简言之&#xff1a; 热点设置功能不可用&#xff0c;不可设置SSID和密码&#xff0c;不可程序控制开启关闭&#xff0c;网上的代码统统都过时了Loca…

图书管理系统源码,图书管理系统开发,图书借阅系统源码整体功能演示

用户登录 基础资料 操作员管理 超期罚金设置 读者分类 读者管理 图书分类 图书管理 图书借还管理 图书借取 图书还去 图书借还查询 读者借书排行 用户登录 运行View目录下Login文件夹下的Index.csthml出现登录界面&#xff0c;输入用户名密码分别是admin密码admin12…

网络安全小白自学

一、网络安全应该怎么学&#xff1f; 1.计算机基础需要过关 这一步跟网安关系暂时不大&#xff0c;是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通&#xff0c;可以与学习其他课程同步进行。 2.渗透技…

【数据结构】排序效率最优解之一:二叉树-堆

Hello everybody!今天打算给大家介绍一个功能比较强大的数据结构的基础&#xff0c;它不仅具有很高的应用价值而且排序效率很高。冒泡排序都知道叭&#xff0c;它的时间复杂度为O(n^2)&#xff0c;而堆排序的时间复杂度为O(n*logn)。堆排序直接碾压冒泡排序。在c语言阶段&#…

线性系统理论 -- 降阶观测器的设计

定理&#xff1a; 若系统能观测&#xff0c;且rankCm&#xff0c;则系统的状态观测器的最小维数是(n-m)。 线性定常时不变系统方程如下&#xff08;以三阶(n3)单入单出系统为例&#xff0c;有mrankC1&#xff09;&#xff1a; 取变换阵P&#xff0c;有&#xff1a; 对上述系统…

易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]

文章目录 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 易宝OA系统ExecuteSqlForSingle接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章…

前端量子纠缠 效果炸裂 multipleWindow3dScene

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…