介绍
MongoDB是一个面向文档的数据库,是免费和开源的。它被归类为NoSQL数据库,因为它不依赖于传统的基于表的关系数据库结构。相反,它使用类似JSON的文档和动态模式。与关系数据库不同,MongoDB在将数据添加到数据库之前不需要预定义模式。您可以随时根据需要更改模式,而无需使用更新的模式设置新的数据库。 本教程将指导您在CentOS 7服务器上安装MongoDB社区版。先决条件
下面这个教程之前,请确保你有一个定期,非root用户sudo
权限。 您可以了解更多关于如何建立用户与这些特权从我们的向导,
如何创建在CentOS一个Sudo用户 。
第1步 - 添加MongoDB存储库
在mongodb-org
包不为CentOS默认的存储库中存在。但是,MongoDB维护一个专用的存储库。让我们将它添加到我们的服务器。 随着
vi
编辑器创建
.repo
文件
yum
,包管理实用程序为CentOS:
sudo vi /etc/yum.repos.d/mongodb-org.repo
然后,请访问
安装在Red Hat MongoDB的文档的部分,并添加了最新的稳定版本的文件存储库的信息:
/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
保存并关闭文件。 在我们继续之前,我们应该确认的MongoDB库中的内部存在
yum
工具。 该
repolist
命令显示使信息库的列表:
yum repolist
Output. . .
repo id repo name
base/7/x86_64 CentOS-7 - Base
extras/7/x86_64 CentOS-7 - Extras
mongodb-org-3.2/7/x86_64 MongoDB Repository
updates/7/x86_64 CentOS-7 - Updates
. . .
随着
MongoDB Repository
的地方,让我们继续安装。
第2步 - 安装MongoDB
我们可以安装mongodb-org
使用的第三方库包
yum
实用工具。
sudo yum install mongodb-org
有两个
Is this ok [y/N]:
提示。 第一个允许安装MongoDB包,第二个导入GPG密钥。 MongoDB中的出版商签署其软件和
yum
使用键确认下载的软件包的完整性。 在每个提示符下,键入
Y
然后按
ENTER
键。 接下来,开始用MongoDB的服务
systemctl
实用程序:
sudo systemctl start mongod
虽然我们将不会在本教程中使用它们,您还可以更改与MongoDB的服务的状态
reload
和
stop
命令。 在
reload
命令请求
mongod
过程中读取配置文件,
/etc/mongod.conf
,并无需重启应用任何更改。
sudo systemctl reload mongod
该
stop
命令停止所有正在运行
mongod
进程。
sudo systemctl stop mongod
该
systemctl
程序执行后没有提供结果
start
命令,但我们可以检查该服务启动通过查看年底
mongod.log
与文件
tail
命令:
sudo tail /var/log/mongodb/mongod.log
Output. . .
[initandlisten] waiting for connections on port 27017
等待一个连接的输出证实的MongoDB已成功启动,我们可以访问与Shell的MongoDB数据库服务器:
mongo
注意:当您启动了MongoDB的外壳,你可能已经看到一个警告是这样的:
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
MongoDB是一个线程应用程序。它可以启动其他进程来处理其工作负载。警告指出,为了使MongoDB最有效,被授权启动的进程数量应该是在任何给定时间可以打开的文件数量的一半。要解决此警告,改变
processes
软RLIMIT值
mongod
通过编辑
20-nproc.conf
文件:
sudo vi /etc/security/limits.d/20-nproc.conf
将以下行添加到文件末尾:
/etc/security/limits.d/20-nproc.conf
. . .
mongod soft nproc 32000
对于要提供给MongoDB的新限制,使用重新启动它
systemctl
实用程序:
sudo systemctl restart mongod
之后,当您连接到MongoDB Shell时,警告应该停止存在。 要了解如何使用MongoDB的从shell交互,可以查看输出
db.help()
它提供对
数据库对象的方法列表方法。
db.help()
OutputDB methods:
db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]
db.auth(username, password)
db.cloneDatabase(fromhost)
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb, todb, fromhost)
db.createCollection(name, { size : ..., capped : ..., max : ... } )
db.createUser(userDocument)
db.currentOp() displays currently executing operations in the db
db.dropDatabase()
. . .
离开
mongod
在后台运行的过程,但放弃与外壳
exit
命令:
exit
OutputBye
第3步 - 验证启动
由于数据库驱动的应用离不开数据库功能,我们将确保MongoDB的守护进程mongod
,会随系统启动。 使用
systemctl
实用程序来检查它的启动状态:
systemctl is-enabled mongod; echo $?
输出为0,确认一个启用的守护进程,我们想要。一个,但是,确认禁用的守护程序将无法启动。
Output. . .
enabled
0
在禁用守护进程的情况下,使用
systemctl
工具来启用它:
sudo systemctl enable mongod
恭喜!我们有一个运行的MongoDB实例,将在系统重新启动后自动启动。
第4步 - 导入示例数据集(可选)
不像其他的数据库服务器,MongoDB的不来与它的数据test
数据库。 因为我们不希望使用生产数据与新的软件进行试验,我们会从“下载示例数据
导入示例数据集的”开始使用MongoDB的“文档”部分。 JSON文档包含一组餐馆,我们将使用它们来与MongoDB进行交互,并避免对敏感数据造成损害。 首先移动到可写目录:
cd /tmp
使用
curl
命令和MongoDB的链接下载JSON文件:
curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
该
mongoimport
命令将数据插入到
测试数据库。 该
--db
标志定义,而要使用哪个数据库
--collection
标志指定的地方在数据库中的信息将被存储,以及
--file
标志告诉在执行导入操作该文件的命令:
mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json
输出证实从数据的导入
primer-dataset.json
文件:
Outputconnected to: localhost
imported 25359 documents
使用示例数据集,我们将对其执行查询。 重新启动MongoDB Shell:
mongo
外壳选用
test
默认情况下,这是我们进口我们的数据的数据库。 查询
餐馆收集的
find()
方法来显示数据集中的所有restuarants的列表。 由于集合包含超过25,000项,请使用可选的
limit()
方法来查询的输出减少到指定号码。 此外,
pretty()
方法使信息更加可读用换行和缩进。
db.restaurants.find().limit( 1 ).pretty()
Output{
"_id" : ObjectId("57e0443b46af7966d1c8fa68"),
"address" : {
"building" : "1007",
"coord" : [
-73.856077,
40.848447
],
"street" : "Morris Park Ave",
"zipcode" : "10462"
},
"borough" : "Bronx",
"cuisine" : "Bakery",
"grades" : [
{
"date" : ISODate("2014-03-03T00:00:00Z"),
"grade" : "A",
"score" : 2
},
{
"date" : ISODate("2013-09-11T00:00:00Z"),
"grade" : "A",
"score" : 6
},
{
"date" : ISODate("2013-01-24T00:00:00Z"),
"grade" : "A",
"score" : 10
},
{
"date" : ISODate("2011-11-23T00:00:00Z"),
"grade" : "A",
"score" : 9
},
{
"date" : ISODate("2011-03-10T00:00:00Z"),
"grade" : "B",
"score" : 14
}
],
"name" : "Morris Park Bake Shop",
"restaurant_id" : "30075445"
}
您可以继续使用样本数据来熟悉MongoDB的或与删除
db.restaurants.drop()
方法:
db.restaurants.drop()
最后,退出与外壳
exit
命令:
exit
OutputBye
结论
在本教程中,我们讨论了增加一个第三方存储库yum
,安装的MongoDB数据库服务器,导入样本数据集,并执行一个简单的查询。 我们几乎没有抓住MongoDB功能的表面。 您可以使用多个
集合创建自己的数据库,有许多
文件填充它们,并开始建立一个强大的应用程序。