1.什么是MongoDB?
MongoDB是由C++语言实现的一个基于分布式文件存储的开源数据库。旨在为Web应用提供可扩展的高性能数据存储解决方法。它介于关系型数据库(Sql)和非关系型数据库(NoSql)之间。
2.MongoDB数据存储结构?
MongoDB将数据存储为一个文档,以键值对的形式(Key:Value结构)作为其数据结构。如下图所示:
3.MongoDB优缺点?
优点:
1)可以非常方便的为数据建立索引
2)可以通过网络或者本地创建数据镜像 ,使得MongoDB具有更强的扩展性
3)数据面向文档进行存储,操作起来简单
4)不存在Sql注入问题
5)支持大容量的数据存储
6)内置Sharding,分片简单
7)支持故障恢复
缺点:
1)不支持事务
2)复杂的聚合操作通过mapreduce创建,速度慢
3)无法进行关联表查询,不适合关系多的数据、
4)删除数据集合后不会自动释放空间
4.MongoDB的应用场景?
当传统的关系型数据库无法满足高并发、海量数据存储访问、灵活扩展、等需求的时候,就可以将MongoDB作为一种解决方案。
总结:
1)程序有大量数据存储(TB甚至PB级别)
2)程序发展速度较快,要求具有快速扩展的能力
3)程序需要3000以上的QPS
4)数据模型暂时无法确定
5)数据价值较低,不需要事务支持和复杂的join操作
如果有以上几点需求,那么MongoDB则是比较好的解决方案。
5.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 代码。 |
下一篇:工厂模式
来源:CSDN
作者:无关痛痒qaq
链接:https://blog.csdn.net/qq_43655835/article/details/104209399