MongoDB数据库--扩展Base64 算法

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: MongoDB数据库--扩展Base64 算法

Python高级


非关系型数据库(NO-SQL:Not Only SQL)


非关系型数据库的诞生:随着IT的发展,变革,数据量越来越大,数据之间的关系越来越零散,松散,没有太大的关系,利用关系型数据库已不能更好的满足我们的需求,使用起来非常复杂,浪费大量的空间。为了解决这种问题就出现了一些能处理松散的,数据与数据之间没有太大关系的数据库,即NoSQL非关系型数据库,如MongoDB等


非关系型数据库适合存放结构松散,相互之间关系不明确的数据


常用产品:


MongoDB (文档)


Redis (键值对)


HBase (一列列的数据)



缓存优化 能不用关系型数据库就不用,非要用就减少数据库的使用,将数据写入Redis



NoSQL数据库的四大分类


1.键值型


2.列存储型


3.文档型,比如MongoDB等


4.图形



Base64编码


Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。 优点:速度快,ascii字符,肉眼不可理解 缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合


import base64

str1 = 'nihao,中国!'

r = base64.b64encode(str1.encode())

print(r)

r = base64.b64decode(r)

print(r.decode())

for...else while..else

for i in range(5):

​ print(i)

​ if i == 3:

​ break # 跳出for循环

else: # 当for循环全部执行完毕才会执行else,没全部执行,如执行了break就不会执行else

​ print(i)

print("end....")

while循环也是如此,但如果while执行了continue,else也会被执行



MongoDB

show dbs 显示所有数据库

db 当前数据库

use mydb 创建mydb数据库

db.student.insert({"sno":1001, "name":"张三"}) 插入数据

db.dropDatabase() 删除当前数据库

db.student.drop() 删除集合 删除后如果数据库中没有其他集合,该数据库将会看不到

db.student.find() 查看文档

db.student.update({"sno":1001},{$set:{"name":"张三丰"}}) 将学号为1001的学

生的姓名更改为张三丰

db.student.remove({"name": "王五"}) 将student表中所有名字叫王五的信息删掉


如果数据库中没有一个集合是不会显示的,所以show dbs就看不到


MongoDB的文档不需要设置相同的字段



集合没有固定的结构,可以插入不同格式和类型的数据



对象为什么能当做字典来使用,只要实现对象中的getitem就可以当做字典来使用


MongoDB在Python中使用

import pymongo

conn = pymongo.MongoClient()

创建数据库

db = conn["mydb"]

创建集合

stus = db["student"]

s = {"sno": 1001, "name": "张三", "sex": "男"}

向student集合中插入一个文档

stus.insert_one(s)

s = {"sno": 1001, "name": "李四", "sex": "男"}

向student集合中插入一个文档

stus.insert_one(s)

r = stus.find({"name":"张三"})

print(r0)

stus.update_one({"name": "张三"}, {"$set": {"name":"张三丰"}})

r = stus.delete_many({"name": {"$regex": "^张"}})

删除的个数

print(r.deleted_count)

stus.insert_one(s)

stus.remove()

查看所有数据库

print(conn.list_database_names())



算法(Algorithm)


解决某个问题的方法,比如冒泡排序,哈希算法,二分查找算法等


评估算法优劣:时间复杂度,空间复杂度


程序本质就是对数据进行处理,想要对数据进行处理,总要有位置放,放就放在存储器,存储器就是内存的容器。存储器分为两种,内存和外存,内存访问速度极快,容量很小,但数据容易流失,外存容量很大,可以持久存放数据,想要把数据存放在外存上需要通过文件,而放在内存上是零散的


算法的空间复杂度计算的是算法执行过程中需要消耗的存储空间,而原始数据所占的空间并不进行考虑


同一个算法的时间空间复杂度跟其的规模有关,即时间复杂度和空间复杂度是问题规模n的函数,n越大时间耗费越长


时间复杂度的衡量一般是基于基本操作(单个操作)的次数


#时间复杂度o(n)


#空间复杂度o(1)


def index(seq, val):


​ i = 0


​ while i < len(seq):


​ if seq[i] == val: return i


​ else:


​ return -1



算法的描述方式:


1.自然语言,比如中文,日文等;


2.伪代码;即随意,能看懂意思就行


3.编程语言;最终期望来实现



重点:


常用算法:


排序算法(至少4中:冒泡,选择,插入,快排),查找算法(二分查找算法),哈希算法(时间是最快的,但耗费大量的存储空间),


记住常用算法的实现


记住常用算法的时间和空间复杂度



数据结构(Data Structure)


数据的一种组织形式,表示方式


集合:


线性结构:顺序表、链表、栈、队列、串(字符串)


树形结构:二叉树、树、森林


图状结构:像渔网一样,数据之间有千丝万缕的联系



算法和数据结构是每个程序猿必须要不断修炼的内功!


云服务器ECS地址:阿里云·云小站

目录
相关文章
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
2月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
2月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
263 79
|
6天前
|
机器学习/深度学习 传感器 算法
基于不变扩展卡尔曼滤波器RI-EKF的同时定位与地图构建SLAM算法的收敛性和一致性特性研究(Matlab代码实现)
基于不变扩展卡尔曼滤波器RI-EKF的同时定位与地图构建SLAM算法的收敛性和一致性特性研究(Matlab代码实现)
|
2月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
159 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
1月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
5月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
5月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
6月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
424 0
|
6月前
|
存储 NoSQL MongoDB
从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升
沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。
313 0

热门文章

最新文章

推荐镜像

更多