MongoDB是一个开源的文档数据库和领先的NoSQL数据库,MongoDB是用c++写的。本教程将向你介绍创建和部署高度可伸缩和面向性能的数据库所需的MongoDB概念。
本教程是为软件专业人士或有意向学习MongoDB的人,MongoDB数据库在简单和容易的步骤,在学习MongoDB入门教程前,你需要文本编辑器和应用程序等有基本的了解。因为我们要开发高性能数据库,所以如果你对数据库(RDBMS)的基本概念有所了解就更好了。
文章图片
任何关系数据库都有一个典型的模式设计,可以显示表的数量和这些表之间的关系,而在MongoDB中,没有关系的概念。
1、什么是数据库?数据库是数据集合的物理容器,每个数据库在文件系统上都有自己的一组文件,一个MongoDB服务器通常有多个数据库。
2、MongoDB相对于RDBMS如MySQL有哪些优势?(1)模式更少 – MongoDB是一个文档数据库,其中一个集合包含不同的文档,文档的字段数、内容和大小可能因文档的不同而不同。
(2)单个对象的结构是清晰的。
(3)没有复杂的连接。
(4)深查询功能,MongoDB支持使用几乎与SQL一样强大的基于文档的查询语言对文档进行动态查询。
(5)调优。
(6)易于扩展——MongoDB易于扩展。
(7)不需要将应用程序对象转换/映射为数据库对象,使用内部内存来存储(窗口化的)工作集,从而能够更快地访问数据。
3、为什么使用MongoDB?(1)面向文档的存储—数据以JSON格式的文档的形式存储。
(2)任意属性的索引.
(3)复制和高可用性
(4)自动分片。
(5)丰富的查询。
(6)就地更新快。
(7)MongoDB的专业支持。
4、MongoDB使用场景有哪些?MongoDB是一个跨平台的、面向文档的数据库,它提供高性能、高可用性和简单的可伸缩性,MongoDB致力于集合和文档的概念,主要应用场景有:
(1)大数据
(2)内容管理和交付
(3)移动和社会基础设施
(4)用户数据管理
(5)数据中心
5、MongoDB中的集合是什么?集合是一组MongoDB文档。它相当于一个RDBMS表,集合存在于单个数据库中。集合不使用强制模式,集合中的文档可以有不同的字段。通常,集合中的所有文档都具有类似或相关的用途。
6、MongoDB中的文档是什么?文档是一组键值对。文档具有动态模式,动态模式意味着同一集合中的文档不需要具有相同的字段或结构集,而集合文档中的公共字段可能包含不同类型的数据。下表显示了RDBMS术语与MongoDB之间的关系。
RDBMS | MongoDB |
数据库Database | 数据库Database |
表Table | 集合Collection |
行Tuple/Row | 文档Document |
列column | 属性Field |
表连接Table Join | 嵌入文档Embedded Documents |
主键Primary Key | 主键Primary Key(默认由mongodb提供) |
数据库服务器和客户端 | |
Mysqld/Oracle | mongod |
mysql/sqlplus | mongo |
{
_id: ObjectId(12sdf656sddf)
title: 'MongoDB入门教程',
description: 'MongoDB是一个NoSQL数据库',
by: 'Corazon',
url: 'http://www.srcmini.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'用户1',
message: '评论',
dateCreated: new Date(2020,1,20,2,15),
like: 0
},
{
user:'用户2',
message: '评论',
dateCreated: new Date(2020,1,25,7,45),
like: 5
}
]
}
【MongoDB新手超级入门教程】_id是一个12字节的十六进制数字,它保证了每个文档的唯一性。可以在插入文档时提供_id,如果不提供,则MongoDB为每个文档提供一个惟一的id。这12个字节,前4个字节用于当前时间戳,后3个字节用于机器id,后2个字节用于MongoDB服务器的进程id,剩下的3个字节是简单的增量值。
推荐阅读
- 你真的懂树吗(二叉树、AVL平衡二叉树、伸展树、B-树和B+树原理和实现代码详解)
- Java|初学Mybatis-第一个Mybatis程序及踩坑解决
- 数据库|从头开始搞懂 MySQL(06)索引的选择
- 三高Mysql - Mysql特性和未来发展
- Vue日常总结|后台管理系统模板
- Java毕业设计项目实战篇|Java项目:YY酒店管理系统(java+JSP+Easyui+Echars+ssm+mysql)
- MYSQL|MYSQL基础
- 课程设计|Springboot+vue项目医院急诊系统
- SQL|MySQL数据库编程01