我只是知识的搬运工。
作为一个android开发工程师,初入职,公司没有什么关于android的任务,反而交给我一个XX管理系统的开发任务,java后端。
大三学习的Java web,我基本都还给老师了,现在要一点点捡起来,所幸java还是熟悉的。唔,初次接触了os 系统,在操作系统不熟,语言不熟的情况下,向朋友求助,安装了intellij idea,gradle,mongodb,安装的时候我啥都不懂,就按照步骤安装上了,照朋友的说法,这个组合开发起来比较简单,然额,把我带进了一个大坑。必须使用的几个工具包,突然不能用了.....真的要疯了,朋友也挺不好意思,算了,按照原生的来吧。
于是又安装了tomcat,写了个hello world,服务器测试成功。
数据库已经安装了mongodb,就没有再安装mysql。
接下来的时间,开始学习。
本文主要是一些概念。
MongoDB 是一款跨平台、面向文档的数据库。用它创建的数据库可以实现高性能、高可用性,并且能够轻松扩展。
MongoDB 的运行方式主要基于两个概念:集合(collection)与文档(document)。
文档
文档是MongoDB的核心概念,多个键及其关联的值有序的放置在一起就是文档。下面是几个关于文档的十分重要的概念:
- 文档中的键值对是有序的。
- 文档的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型。
- 文档的键是字符串,除了少数例外情况外,键可以使用任意UTF-8字符:
- 键不能含有/0(空字符)。这个字符用来表示键的结尾。
- .和$有特别的意义,只有在特殊环境下才能使用。
- 以“_”开头的键是保留的。
- 文档中不能有重复的键
集合
集合就是一组文档,如果说文档相当于关系数据库中的行,那么集合就相当于其中的表。
以下是关于集合的几个重要概念。
- 集合是无模式的。一个集合中的文档是多种多样的。
- 集合的命名规则如下:
- 集合名不能是空字符串“”。
- 集合名不能含有空字符“ ”,它代表集合名的结尾;
- 集合名不能以“system.”开头,这是为系统集合保留的前缀。
- 用户创建集合名字不能包含$字符。
- 集合的子集合。
可使用子集合来组织数据。
数据库
在MongoDB中,多个文档组成集合,多个集合组成数据库。
数据库命名规则:
- 集合名不能是空字符串“”。
- 集合名不能含有空字符“ ”,“.”,"$"," "(空格),“”。
- 应全部小写。
- 最多64字节。
数据库最终会变成文件系统中的文件。
与关系数据库相比
1、MongoDB 相比 RDBMS 的优势
-
模式较少:MongoDB 是一种文档数据库,一个集合可以包含各种不同的文档。每个文档的字段数、内容以 及文档大小都可以各不相同。
-
采用单个对象的模式,清晰简洁。
-
没有复杂的连接功能。
-
深度查询功能。MongoDB 支持对文档执行动态查询,使用的是一种不逊色于 SQL 语言的基于文档的查询 语言。
-
具有调优功能。
-
易于扩展。MongoDB 非常易于扩展。
-
不需要从应用对象到数据库对象的转换/映射。
-
使用内部存储存储(窗口化)工作集,能够更快地访问数据。
2、为何选择使用 MongoDB
-
面向文档的存储:以 JSON 格式的文档保存数据。
-
任何属性都可以建立索引。
-
复制以及高可扩展性。
-
自动分片。
-
丰富的查询功能。
-
快速的即时更新。
-
来自 MongoDB 的专业支持。
3、MongoDB 适用的领域
• 大数据
• 内容管理及交付
• 移动及社会化基础设施
• 用户数据管理
• 数据中心