什么是MongoDB?
MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongonDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。

主要特点
- MongoDB是一个面向文档存储的数据库,操作起来比较简单容易。
- 你可以在MongoDB记录中设置任何属性的索引(如:FirstName=“Sameer”,Address=“8 Ganhhi Road”)来实现更快的排序。
- 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- MongoDB支持丰富的查询表达式。查询指令使用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官网下载该安装包,地址为:https://www.mongodb.com/download-center#community。MongoDB支持以下平台:OS X 32-bit,OS X 64-bit,Linux 32-bit,Linux 64-bit,Windows 32-bit,Windows 64-bit,Solaris i86pc,Solaris 64
语言支持
MongoDB有官方的驱动如下:C、C++、C#/.NET、Erlang、Haskell、Java、Javascript、Lisp、node.JS、Perl、PHP、Python、Ruby、Scala、Go
MongoDB安装
Windows平台安装MongoDB
MongoDB下载
MongoDB提供了可用于32位和64位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址:https://www.mongodb.com/download-center/community。
注意:在MongoDB2.2版本之后已经不再支持Windows XP系统。最新版本也已经没有了32位系统的安装文件。

- MongoDB for Windows 64-bit 适合64位的Windows Server 2008 R2,Windows 7,及最新版本的Windows系统。
- MongoDB for Windows 32-bit 适合32位的Windows 系统及最新的Windows Vista。32位系统上MongoDB的数据库最大位2GB。
- MongoDB for Windows 64-bir Legacy 适合64位的Windows Vista,Windows Server 2003,及Windows Server 2008。
下载.msi文件,下载后双击该文件,按操作提示安装即可。
安装过程中,你可以通过点击“Custom(自定义)”按钮来设置你的安装目录。


下一步安装“install mongoDB compass”不勾选(当然你也可以选择安装它,可能需要更久的安装时间),MongoDB Compass是一个图形界面管理工具,我们可以在后面自己到官网安装,下载地址:https://www.mongodb.com/download-center/compass。

创建数据目录
MongoDB将数据目录存储在db目录下。但这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下(如C:\或D:\)。
在上述教程中,我们已经在C盘安装了mongodb,现在我们创建一个data目录然后在data目录里创建db目录。
cd C:\
md "\data\db"
你也可以通过Windows资源管理器创建这些目录,不一定通过命令行。
命令行下运行MongoDB服务器
为了从命令提示符下运行MongoDB服务器。你必须从MongoDB目录的bin目录中执行mongod.exe文件。
C:\mongodb\bin\mongod --dbpath c:\data\db
如果成功,会输出以下信息:
2022-03-25T11:19:07.151+08:00 I CONTROL Hotfix KB2731284 or later update is not
installed, will zero-out data files
2022-03-25T11:19:07.151+08:00 I JOURNAL [initandlisten] journal dir=c:\data\db\j
ournal
2022-03-25T11:19:07.151+08:00 I JOURNAL [initandlisten] recover : no journal fil
es present, no recovery needed
2022-03-25T11:19:07.151+08:00 I JOURNAL [durability] Durability thread started
2022-03-25T11:19:07.151+08:00 I CONTROL [initandlisten] MongoDB starting : pid=2
488 port=27017 dbpath=c:\data\db 64-bit host=WIN-1VONBJOCE88
2022-03-25T11:19:07.151+08:00 I CONTROL [initandlisten] targetMinOS: Windows 7/W
indows Server 2008 R2
2022-03-25T11:19:07.151+08:00 I CONTROL [initandlisten] db version v3.0.6
……
连接MongoDB
我们可以命令窗口中运行mongo.exe明亮即可连接上MongoDB,执行如下命令:
C:\mongodb\bin\mongo.exe
配置MongoDB服务
注意:一些新版本的MongoDB安装时已经自行完成大部分配置,如果以下目录已经存在,你可以直接跳过这部分内容。
管理员模式打开命令行窗口
创建目录,执行下面的语句来创建数据库华人日志文件的目录
mkdir c:\data\db
mkdir c:\data\log
创建配置文件
创建一个配置文件。该文件必须设置systemLog.path参数,包括一些附加的配置选项更好。
例如创建一个配置文件位于C:\mongodb\mongod.cfg,其中指定systemLog.path和storage.dbPath。具体配置内容如下:
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
安装MongoDB服务
通过执行mongod.exe,使用–install选项来安装服务,使用–config选项来指定之前创建的配置文件。
C:\mongodb\bin\mongod.exe --config "C:\mongodb\mongod.cfg" --install
要使用备用 dbpath,可以在配置文件(例如:C:\mongodb\mongod.cfg)或命令行中通过 --dbpath 选项指定。
如果需要,您可以安装 mongod.exe 或 mongos.exe 的多个实例的服务。只需要通过使用 --serviceName 和 --serviceDisplayName 指定不同的实例名。只有当存在足够的系统资源和系统的设计需要这么做。
启动MongoDB服务
net start MongoDB
关闭MongoDB服务
net stop MongoDB
移除MongoDB服务
C:\mongodb\bin\mongod.exe --remoe
命令行下运行MongoDB服务器和配置MongoDB服务任务一个方式启动就可以
MongoDB后台管理Shell
如果你需要进入MongoDB后台管理,你需要先打开mongodb目录下的bin目录,然后执行mongo.exe文件,MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它会默认链接到test文档(数据库):
> mongo
MongoDB shell version v5.0.3
connecting to: mongodb:....
......
由于它是一个Javascript shell ,您可以进行一些简单的算术运算:
> 2+2
4
>
db命令用于查看当前操作的文档(数据库):
> db
test
>
插入一些简单的记录并查找它
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("623d43d968de0f490d5a260e"), "x" : 10 }
>
第一个命令将数字10插入到runoob集合的x字段中。
Linux平台安装MongoDB
MongoDB提供了linux各个发行版本64位的安装包,你可以在官网下载安装包。
安装之前我们需要安装各个Linux平台依赖包。
Red Hat/CentOS:
sudo yum install libcurl openssl
Ubuntu 18.04 LTS(“Bionic”)/Debian 10 “Buster”:
sudo apt-get install libcurl4 openssl
Ubuntu 16.04 LTS(“Xenial”)/Debian 9 “Stretch”:
sudo apt-get isntall libcurl3 openssl
MongoDB源码下载地址:https://www.mongodb.com/download-center#community。

这里我们选择tgz下载,下载完安装包,并解压tgz(以下演示的是64位Linux上的安装)。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz # 下载
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz # 解压
mv mongodb-src-r4.2.8 /usr/local/mongodb4 # 将解压包拷贝到指定目录
MongoDB的可执行文件位于bin目录下,所以可以将其添加到PATH路径中:
export PATH=<mongodb-install-directory>/bin:$PATH
为你MongoDB的安装路径。如本文的/usr/local/mongodb4.
export PATH=/usr/local/mongodb4/bin:$PATH
创建数据库目录
默认情况下MongoDB启动后会初始化以下两个目录:
- 数据存储目录:/var/lib/mongodb
- 日志文件目录:/var/log/mongodb
我们在启动前可以先创建这两个目录并设置当前用户有读写权限:
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo chown 'whoami' /var/lib/mongo #设置权限
sudo chown 'whoami' /var/log/mongodb #设置权限
接下来启动MongoDB服务:
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
打开/var/log/mongodb/mongod.log文件看到以下信息,说明启动成功。
# tail -10f /var/log/mongodb/mongod.log
2020-07-09T12:20:17.391+0800 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
2020-07-09T12:20:17.392+0800 I NETWORK [listener] Listening on 127.0.0.1
2020-07-09T12:20:17.392+0800 I NETWORK [listener] waiting for connections on port 27017
MongoDB后台管理Shell
如果你需要进入 mongodb 后台管理,你需要先打开 mongodb 装目录的下的 bin 目录,然后执行 mongo 命令文件。
MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。
当你进入 mongoDB 后台后,它默认会链接到 test 文档(数据库):
$ cd /usr/local/mongodb4/bin
$ ./mongo
MongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2cfdafc4-dd56-4cfc-933a-187b887119b3") }
MongoDB server version: 4.2.8
Welcome to the MongoDB shell.
……
由于它是一个Javascript shell ,您可以进行一些简单的算术运算:
> 2+2
4
>
db命令用于查看当前操作的文档(数据库):
> db
test
>
插入一些简单的记录并查找它
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("623d43d968de0f490d5a260e"), "x" : 10 }
>
第一个命令将数字10插入到runoob集合的x字段中。
如果要停止mongodb可以使用以下命令:
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongo.log --shutdown
也可以在mongo的命令窗口中实现:
>use admin
switched to db admin
>db.shutdownServer()
2473

被折叠的 条评论
为什么被折叠?



