基于分布式文件存储的数据库 -------MongoDB(简介及安装)

文章目录

  • 前言
  • 一、什么是MongoDB ?
  • 二、主要特点
  • 三、MongoDB 工具
    • 1. 监控
    • 2. GUI
  • 四、Windows 平台安装 MongoDB
    • 1,MongoDB 下载
    • 2、解压文件
    • 3、创建data ,logs文件
    • 4、安装 MongoDB服务
    • 5、启动MongoDB服务(bin目录下“net start mongdb”)
    • 6、mongo开启后台
  • 五、概念
    • 1、数据库
    • 2、文档(Document)
    • 3、集合


前言

基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第1张图片

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是使用最广泛的 NoSQL 数据库之一,在实际项目中应用也越来越广


一、什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

  1. 在高负载的情况下,添加更多的节点,可以保证服务器性能。
  2. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  3. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON对象。字段值可以包含其他文档,数组及文档数组。
    基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第2张图片

MongoDB 官网地址:https://www.mongodb.com/

MongoDB 官方英文文档:https://docs.mongodb.com/manual/

MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community

二、主要特点

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。

三、MongoDB 工具

有几种可用于MongoDB的管理工具。

1. 监控

MongoDB提供了网络和系统监控工具Munin,它作为一个插件应用于MongoDB中。

Gangila是MongoDB高性能的系统监视的工具,它作为一个插件应用于MongoDB中。

基于图形界面的开源工具 Cacti, 用于查看CPU负载, 网络带宽利用率,它也提供了一个应用于监控 MongoDB 的插件。

2. GUI

  • Fang of Mongo – 网页式,由Django和jQuery所构成。
  • Futon4Mongo – 一个CouchDB Futon web的mongodb山寨版。
  • Mongo3 – Ruby写成。
  • MongoHub – 适用于OSX的应用程序。
  • Opricot – 一个基于浏览器的MongoDB控制台, 由PHP撰写而成。
  • Database Master — Windows的mongodb管理工具
  • RockMongo — 最好的PHP语言的MongoDB管理工具,轻量级, 支持多国语言.

四、Windows 平台安装 MongoDB

1,MongoDB 下载

MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center/community

 MongoDB的版本偶数版本为稳定版,奇数版本为开发版。
 MongoDB对于32位系统支持不佳,所以3.2版本以后没有再对32位系统的支持。

注意:在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统。最新版本也已经没有了 32 位系统的安装文件。

基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第3张图片
基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第4张图片

2、解压文件

3、创建data ,logs文件

基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第5张图片

4、安装 MongoDB服务

在这里插入图片描述
在这里插入图片描述
可以打开服务查看mongodb是否安装
基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第6张图片

5、启动MongoDB服务(bin目录下“net start mongdb”)

在这里插入图片描述

6、mongo开启后台

基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第7张图片
然后你可以试一下:show dbs 命令
在这里插入图片描述
在这里插入图片描述

命令行下运行 MongoDB 服务器 和 配置 MongoDB 服务 任选一个方式启动就可以。

五、概念

在mongodb中基本的概念是文档、集合、数据库,下表是MongoDB与SQL术语的区别:
基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第8张图片

1、数据库

一个mongodb中可以建立多个数据库。

MongoDB的默认数据库为"db",该数据库存储在data目录中。

MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

基本命令:
“show dbs” 命令可以显示所有数据的列表。
执行 “db” 命令可以显示当前数据库对象或集合。
运行"use"命令,可以连接到一个指定的数据库。

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> use local       # "local" 是你要链接的数据库
switched to db local
> db
local
> 

数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串。

  • 不能是空字符串("")。
  • 不得含有’ '(空格)、.、$、/、\和\0 (空字符)。
  • 应全部小写。
  • 最多64字节。

有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

  1. admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
  2. local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  3. config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

2、文档(Document)

文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

下表列出了 RDBMS 与 MongoDB 对应的术语:
基于分布式文件存储的数据库 -------MongoDB(简介及安装)_第9张图片
需要注意的是:

  1. 文档中的键/值对是有序的。
  2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
  3. MongoDB区分类型和大小写。
  4. MongoDB的文档不能有重复的键。
  5. 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

文档键命名规范:

  • 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
  • 和$有特别的意义,只有在特定环境下才能使用。
  • 以下划线"_"开头的键是保留的(不是严格要求的)。

3、集合

集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。

集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

比如,我们可以将以下不同数据结构的文档插入到集合中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}

当第一个文档插入时,集合就会被创建。

合法的集合名

  • 集合名不能是空字符串""。
  • 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
  • 集合名不能以"system."开头,这是为系统集合保留的前缀。
  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。

你可能感兴趣的:(MongoDB,数据库,mongodb)