mongodb基本概念
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,一、mongodb概念解析不管学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库SQL术语/概念MongoDB术语/概念解释/说明databasedatabase
千家信息网最后更新 2024年11月11日mongodb基本概念
一、mongodb概念解析不管学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
二、mongodb数据库一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
1、显示所有数据的列表。"show dbs" 2、显示当前数据库对象或集合。"db" 3、连接到一个指定的数据库。"use 数据库名称"注:如果指定数据库不存在,则会自动创建。
数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串。1. 不能是空字符串("")。2. 不得含有' '(空格)、.、$、/、\和\0 (空字符)。3. 应全部小写。4. 最多64字节。
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。1. admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。2. local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。3. config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
三、mongodb文档文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。 简单文档例子:{ "c02":"yunjisuan", "name":"云计算"}
需要注意的是:1. 文档中的键/值对是有序的。2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。3. MongoDB区分类型和大小写。4. MongoDB的文档不能有重复的键。5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
文档键命名规范:
- 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
- .和$有特别的意义,只有在特定环境下才能使用。
- 以下划线"_"开头的键是保留的(不是严格要求的)。
四、集合集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。 可以将以下不同数据结构的文档插入到集合中:{"site":"www.baidu.com"}{"site":"www.google.com","name":"Google"}当第一个文档插入时,集合就会被创建。
法的集合名:
- 集合名不能是空字符串""。
- 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
- 集合名不能以"system."开头,这是为系统集合保留的前缀。
- 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。
五、元数据数据库的信息是存储在集合中。它们使用了系统的命名空间:dbname.system.*
在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下:
集合命名空间 | 描述 |
---|---|
dbname.system.namespaces | 列出所有名字空间。 |
dbname.system.indexes | 列出所有索引。 |
dbname.system.profile | 包含数据库概要(profile)信息。 |
dbname.system.users | 列出所有可访问数据库的用户。 |
dbname.local.sources | 包含复制对端(slave)的服务器信息和状态。 |
六、MongoDB数据类型
数据类型 | 描述 |
---|---|
String | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 |
Integer | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 |
Boolean | 布尔值。用于存储布尔值(真/假)。 |
Double | 双精度浮点值。用于存储浮点值。 |
Min/Max keys | 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 |
Array | 用于将数组或列表或多个值存储为一个键。 |
Timestamp | 时间戳。记录文档修改或添加的具体时间。 |
Object | 用于内嵌文档。 |
Null | 用于创建空值 |
Symbol | 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 |
Date | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 |
Object ID | 对象 ID。用于创建文档的 ID。 |
Binary Data | 二进制数据。用于存储二进制数据。 |
Code | 代码类型。用于在文档中存储 JavaScript 代码。 |
Regular expression | 正则表达式类型。用于存储正则表达式。 |
七、mongodb连接标准 URI 连接语法:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
说明:
- mongodb:// 这是固定的格式,必须要指定。
- username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库。
- host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
- portX 可选的指定端口,如果不填,默认为27017
- /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
- ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
标准的连接格式包含了多个选项(options),如下所示:
选项 | 描述 |
---|---|
replicaSet=name | 验证replica set的名称。 Impliesconnect=replicaSet. |
slaveOk=true false | 1. true:在connect=direct模式下,驱动会连接第一台机器,即使这台服务器不是主。在connect=replicaSet模式下,驱动会发送所有的写请求到主并且把读取操作分布在其他从服务器。 2.false: 在 connect=direct模式下,驱动会自动找寻主服务器. 在connect=replicaSet 模式下,驱动仅仅连接主服务器,并且所有的读写命令都连接到主服务器。 |
w=n | 驱动添加 { w : n } 到getLastError命令. 应用于safe=true。 |
wtimeoutMS=ms | 写入超时时间,驱动添加 { wtimeout : ms } 到 getlasterror 命令. 应用于 safe=true. |
fsync=true false | 1. true: 驱动添加 { fsync : true } 到 getlasterror 命令.应用于 safe=true. 2. false: 驱动不会添加到getLastError命令中。 |
journal=true false | 如果设置为 true, 同步到 journal (在提交到数据库前写入到实体中). 应用于 safe=true |
connectTimeoutMS=ms | 可以打开连接的时间。连接超时时间 |
socketTimeoutMS=ms | 发送和接受sockets的时间。 |
mongodb连接命令格式:使用用户名和密码连接到 MongoDB 服务器,你必须使用 'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。 使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上:mongodb://admin:123456@localhost/使用用户名和密码连接登陆到指定数据库:mongodb://admin:123456@localhost/test连接 replica set 三台服务器 (端口 27017, 27018, 和27019):mongodb://localhost,localhost:27018,localhost:27019连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器。mongodb://host1,host2,host3/?slaveOk=true 直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器。mongodb://host1,host2,host3/?connect=direct;slaveOk=true 安全模式连接到localhost:mongodb://localhost/?safe=true以安全模式连接到replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000
数据
数据库
服务
服务器
文档
字符
类型
存储
时间
驱动
用户
命令
信息
字符串
格式
模式
系统
概念
不同
名字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于加强大学生网络安全教育
怎么通过ip黑进数据库
西安西电网络技术学院
七日杀删除别人服务器的存档
软件开发综合实验
英雄联盟手游服务器是不是爆炸了
基于对象模型的数据库有哪些
麦芽时光网络技术
银行网络安全知识培训总结
数据库知识与技术的重要性
加强进一步网络安全通知
一个数据库实例有多个用户
软件开发人员考核形式
定制软件开发公
叙述数据库的代码
photon服务器ue4
网信办 国际网络安全
爱奇艺服务器装家里
硬件数据推送到数据库
负载均衡网络安全设备招标
极兔互联网科技
梦幻诛仙服务器
go语言连接多个数据库
单元测试 数据库模拟
软件开发与软件服务税率
量子通信网络安全
数学货币网络安全
人际网络安全
审核网络安全工作的核心
山东超频服务器供应商家