一、介绍
MongoDB是一个文档数据库,旨在方便应用开发和扩展。其官网的官方文档地址如下:
https://www.mongodb.com/docs/
如果想在个人电脑(Windows系统)中安装MongDB,个人建议使用绿色解压版安装比较好,那么具体的话可以参考下述资料:
https://www.mongodb.com/try/download/community
https://www.cnblogs.com/heqiuyong/p/8973361.html
https://www.cnblogs.com/chy18883701161/p/11100560.html
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式(二进制JSON),因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
总结:MongoDB是一个非关系型文档数据库
二、特点
- 面向集合存储,易存储对象类型的数据
- 支持查询,以及动态查询
- 支持Ruby、Python、Java、C++、Php、C#等多种语言
- 文件存储格式为BSON(一种JSON的扩展)
- 支持复制和故障恢复和分片
- 支持事务,强一致性(特别说明:只支持单条事务,不支持集合事务)
三、应用场景
游戏应用:使用云数据库MongoDB作为游戏服务器的数据库存储用户信息。用户的游戏装备、积分等直接以内嵌文档的形式存储,方便进行查询与更新。
物流应用:使用云数据库MongoDB存储订单信息,订单状态在运送过程中会不断更新,以云数据库MongoDB内嵌数组的形式来存储,一次查询就能将订单所面的变更读取出来,方便快捷且一目了然。
社交应用:使用云数据库MongoDB存储用户信息以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。并且云数据库MongoDB非常适合用来存储聊天记录,因为它提供了非常丰富的查询,并在写入和读取方面都相对较快。
视频直播:使用云数据库MongoDB存储用户信息、礼物信息等。
大数据应用:使用云数据库MongoDB作为大数据的云存储系统,随时进行数据提取分析,掌握行业动态。
四、核心概念
库(DataBase):mongodb中的库就类似于传统关系型数据库中库的概念,用来通过不同库隔离不同的应用数据。MongoDB中可以建立多个数据库,每一个数据库都有自己的集合和权限,不同的数据库放置在不同的文件中。默认的数据库为“test”,数据库存储在启动指定的data目录中。
集合(Collection):集合就是MongoDB文档组,类似于关系型数据库中的表的概念。集合存在于数据库中,一个库中可以创建多个集合。每个集合没有固定的结构,这意味着你对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
文档(Document):文档集合中一条条记录,是一组键值(key-value)对(即BSON)。MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。
一个简单的文档例子如下:
{"site":"www.baidu.com","name":"百度"}
关系总结: