本文是我们学院课程中名为MongoDB –可扩展NoSQL DB的一部分 。
在本课程中,您将被介绍到MongoDB。 您将学习如何安装它以及如何通过它的外壳进行操作。 此外,您还将学习如何通过Java以编程方式访问它以及如何将Map Reduce与其一起使用。 最后,将解释更高级的概念,例如分片和复制。 在这里查看 !
目录
1.简介
NoSQL运动催生了许多不同的数据存储区,可以满足几乎所有可想像的应用程序的需求:键/值存储区,图形数据库,文档数据库,…在本教程中,我们将介绍文档数据存储区的独特成员家庭– MongoDB ( http://www.mongodb.org/ )。 引用来自MongoDB网站:
“ MongoDB(来自“ humongous”)是一个开源文档数据库,也是领先的NoSQL数据库,用C ++编写。”
这个简短而简单的定义概述了MongoDB作为文件存储的主要设计目标。 毫无疑问,文档只是一组字段(或属性)及其值,没有定义或要求特定的架构。
MongoDB是相当成熟的产品。 在撰写本文时,最新版本是2.6 ( http://www.mongodb.org/downloads ), MongoDB具有以下主要功能:
- 使用动态模式存储JSON样式的文档。
- 完全索引支持:对任何文档属性的索引。
- 复制和高可用性。
- 自动分片以进行水平缩放。
- 丰富的基于文档的查询支持。
- 快速而原子的就地文档更新。
- 开箱即用的Map / Reduce支持聚合和数据处理。
- GridFS文件系统。
如果MongoDB适合您的应用程序体系结构,数据访问模式和存储要求,则它是一个绝佳的选择。 在本部分的教程中,我们将介绍不同操作系统上的MongoDB安装过程。
2.执照
MongoDB本身是根据自由软件基金会的GNU AGPL v3.0许可证发行的 。 MongoDB支持的用于不同编程语言的驱动程序以Apache License v2.0许可证发布。 有关许可的更多详细信息,请参阅官方文档 。
3.文件
MongoDB团队在线提供了出色的最新文档: http : //docs.mongodb.org/manual/ 。 这是获得MongoDB及其功能的全面概述的绝佳资源。 在整个教程中,我们将大量参考MongoDB文档的不同部分,因此您可以快速跳转至相关主题。
4.架构概述
MongoDB数据模型层次结构的顶部是数据库。 数据库是用于收集的物理容器。 每个数据库在文件系统上都有自己的文件集,单个MongoDB服务器可以具有多个数据库。
所有文档都归为集合。 集合等效于RDBMS表,并且存在于单个数据库中。 集合不强制执行架构,并且集合中的文档可以具有不同的字段。 从预期的数据建模角度出发,建议集合中的所有文档应具有相似的结构或至少以某种方式相关。
文档构成MongoDB集合中的记录,并且是MongoDB中数据的基本单位。 文档类似于JSON对象,但是以类型更丰富的格式(称为BSON ( 二进制 JSON ))存在于数据库中。
尽管MongoDB不是内存中的数据存储,但它使用称为内存映射文件的技术来提高I / O性能。
5.安装MongoDB
MongoDB的强项之一是非常简单的安装过程,无论您针对的是哪个平台。 它实际上遵循下载并运行模式,不需要其他配置。 为所有主要操作系统提供了安装软件包: Windows , Linux和MacOSX 。 在本节中,我们将介绍上述所有平台的MongoDB安装过程。
对于Windows和Linux操作系统,提供了32位和64位版本,但是建议的运行MongoDB服务器进程的平台是64位。
注意: MongoDB还为Solaris平台提供了预构建的二进制分发。 我们在这里不打算讨论该操作系统,但是安装过程与Linux十分相似。
在Windows上安装MongoDB
在Windows平台上,可以通过两种方式安装MongoDB :从Microsoft Installer软件包( * .msi )或从存档中。 我们将从最简单的一个选项(存档)开始介绍这两个选项。
无论选择哪种方式,二进制文件的结果集都是相同的,因此这只是个人喜好问题。 请注意, MongoDB不支持Windows XP或更早的 Windows版本。
5.1.1从存档安装
要从档案中安装MongoDB ,足以执行以下两个简单步骤:
- 下载发行档案
- 对于Windows 32位,请从以下网址下载存档: https : //fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.0.zip
- 对于Windows 64位,请从以下网址下载存档: https : //fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.0.zip
- 解压发行档案
下载后,请将存档解压缩到本地硬盘上的方便位置。
有关更高级的安装选项,请参阅官方文档 。
5.1.2从MSI软件包安装
从预构建的* .msi软件包安装MongoDB的过程也非常简单:
- 下载发行版* .msi软件包
- 对于Windows 32位,请从以下网址下载* .msi软件包: https : //fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.0.msi
- 对于Windows 64位,请从以下网址下载* .msi软件包: https : //fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.0.msi
- 运行下载的* .msi软件包
- 按照“安装向导”中的步骤操作(可选,选择本地硬盘驱动器上的便利位置)
如果您决定执行典型安装,则默认目标位置将为C:\ Program Files \ MongoDB 2.6 Standard 。
有关更高级的安装选项,请参阅官方文档 。
在Linux上安装MongoDB
要在Linux上安装MongoDB ,相应的二进制文件已经预先构建并作为分发存档提供。 让我们逐步完成安装过程。
- 下载发行档案
- 对于32位Linux,请从以下网址下载归档文件: https : //fastdl.mongodb.org/linux/mongodb-linux-i686-2.6.0.tgz
- 对于64位Linux,请从以下网址下载归档文件: https : //fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
- 解压发行档案
- 对于Linux 32位发行版归档文件: tar xf mongodb-linux-i686-2.6.0.tgz应该创建包含所有二进制文件的mongodb-linux-i686-2.6.0文件夹。
- 对于Linux 64位发行版归档文件: tar xf mongodb-linux-x86_64-2.6.0.tgz应该创建包含所有二进制文件的mongodb-linux-x86_64-2.6.0文件夹。
需要注意的一件事是, MongoDB发行版不包含用于在系统启动时运行服务器组件的控制脚本(放置在/etc/init.d中 )。 但是, MongoDB提供了自己的官方软件包,它们确实部署了这些脚本,并且可以使用其他软件包管理器进行安装。 详细的安装说明可用于Ubuntu , CentOS / Fedora和Debian 。
有关针对不同Linux发行版的更多高级安装选项和步骤,请参考官方文档 。
在MacOS X上安装MongoDB
MongoDB上的安装与Linux版本非常相似,不同之处在于仅提供64位分发。 让我们仔细看看安装步骤。
- 下载发行档案 : https : //fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.0.tgz
- 解压发行档案
下载后,请运行以下命令:tar xf mongodb-osx-x86_64-2.6.0.tgz
应该创建包含所有二进制文件的mongodb-osx-x86_64-2.6.0文件夹。
有关更高级的安装选项,请参阅官方文档 。
6. MongoDB服务器和工具
MongoDB二进制发行版由几个可执行文件组成,这些文件代表服务器进程本身以及在其之上的一组工具。 默认情况下,所有可执行文件都位于已安装发行版的bin文件夹中。
在本节中,我们将研究发行版内部并遍历每个可执行文件,包括Linux和Windows版本。
可执行文件名 描述 蒙哥 蒙哥德
MongoDB系统的主服务器(守护程序)进程。 它处理数据请求,管理数据格式并执行后台管理操作。 有关更多详细信息和命令行参数,请参阅官方文档 。
蒙哥 蒙哥
MongoDB的交互式JavaScript Shell界面,该界面为系统管理员提供了强大的界面,并为开发人员提供了直接通过数据库测试查询和操作的方式。 它还提供了用于MongoDB的功能齐全JavaScript环境。 有关更多详细信息和命令行参数,请参阅官方文档 。
蒙哥斯 蒙哥斯
MongoDB分片配置的路由服务,该服务处理来自应用程序层的查询,并确定此数据在分片集群中的位置,以完成这些操作。 从应用程序的角度来看, mongos / mongos.exe实例的行为与任何其他MongoDB实例相同。 有关更多详细信息和命令行参数,请参阅官方文档 。
mongodump mongodump.exe
一个强大的实用程序,用于创建数据库内容的二进制导出,对于有效创建备份非常有用。 它可以与mongorestore / mongorestore.exe结合使用以还原数据库。 除了直接从MongoDB数据文件读取而不运行活动的mongod / mongod.exe之外,它还可以从mongod / mongod.exe或mongos / mongos.exe实例读取数据。 有关更多详细信息和命令行参数,请参阅官方文档 。
mongorestore mongorestore.exe
该工具将数据从mongodump / mongodump.exe创建的二进制数据库转储写入MongoDB实例。 它可以创建一个新数据库或向现有数据库添加数据。 与mongodump / mongodump.exe类似,它可以在不运行活动mongod / mongod.exe的情况下直接写入MongoDB数据文件,也可以将数据写入mongod / mongod.exe或mongos / mongos.exe实例。 有关更多详细信息和命令行参数,请参阅官方文档 。
mongoexport mongoexport.exe
一个实用程序,可对存储在MongoDB实例中的数据进行JSON或CSV导出。 它与mongoimport / mongoimport.exe实用程序结合使用,该实用程序提供了导入功能。 注意:不建议将此实用程序用于全面生产备份,因为它可能无法可靠地捕获数据类型信息。 建议改用mongodump / mongodump.exe 。
有关更多详细信息和命令行参数,请参阅官方文档 。
mongoimport mongoimport.exe 一个实用程序,可以从mongoexport / mongoexport.exe或可能的其他第三方导出工具创建的JSON , CSV或TSV导出中导入内容。 它与mongoexport / mongoexport.exe实用程序结合使用,该实用程序提供了导出功能。 注意:不建议将此实用程序用于全面生产备份,因为它可能无法可靠地捕获数据类型信息。 建议改用mongorestore / mongorestore.exe 。
有关更多详细信息和命令行参数,请参阅官方文档 。
Mongotop mongotop.exe
它是一个重要的诊断实用程序,提供了一种跟踪MongoDB实例花费在读写数据上的时间的方法。 统计信息是按集合级别提供的。 默认情况下, mongotop / mongotop.exe每秒返回一次值。 有关更多详细信息和命令行参数,请参阅官方文档 。
蒙古国 mongostat.exe
一个有用的诊断实用程序,可快速概述当前正在运行的mongod / mongod.exe或mongos / mongos.exe实例的状态。 默认情况下,它连接到本地主机上运行的实例,但也可以连接到任何可访问的远程实例。 有关更多详细信息和命令行参数,请参阅官方文档 。
mongo文件 mongofiles.exe
使用此实用程序可以从命令行操作GridFS对象中MongoDB实例中存储的文件。 它提供了存储在文件系统中的对象与GridFS之间的接口,因此它特别有用。 此外,该工具无需运行活动的mongod / mongod.exe即可直接访问MongoDB数据文件。 有关更多详细信息和命令行参数,请参阅官方文档 。
mongooplog mongooplog.exe
尽管它很底层,但是它是一个简单的工具,它可以从远程服务器的复制操作日志中轮询操作,并将其应用于本地服务器。 此功能支持某些类的实时迁移,这些迁移要求源服务器在整个迁移过程中保持在线并在运行中。 有关更多详细信息和命令行参数,请参阅官方文档 。
蒙法夫 mongoperf.exe
一种诊断实用程序,可独立于MongoDB检查磁盘I / O性能。 它可以提供有关在此主机上运行的MongoDB实例的预期性能特征的非常重要的见解。 有关更多详细信息和命令行参数,请参阅官方文档 。
bsondump bsondump.exe
这是一种诊断工具,可以将BSON ( MongoDB主文档存储格式)文件转换为人类可读的格式,包括JSON 。 这对于读取mongodump / mongodump.exe生成的输出文件很有用。 有关更多详细信息和命令行参数,请参阅官方文档 。
7.运行MongoDB
安装后,可以使用mongod / mongod.exe可执行文件从命令行运行MongoDB 。 唯一需要的参数是存储数据库文件的位置,可以使用–dbpath命令行参数设置该位置。
在Windows上,假设我们位于已安装/未打包的MongoDB分发位置,则可以使用以下步骤运行服务器:
- 创建一个数据文件夹(我们只需要做一次): mkdir data
- 运行MongoDB服务器: bin \ mongod.exe –dbpath数据
要停止正在运行的MongoDB服务器实例,只需键入CTRL-C即可 。
在Linux上,命令顺序完全相同。 假设我们在未打包的MongoDB分发位置内,请执行以下操作:
- 创建一个数据文件夹(我们只需要做一次): mkdir data
- 运行MongoDB服务器: bin / mongod –dbpath数据
同样,要停止正在运行的MongoDB服务器实例,只需键入CTRL-C即可 。
验证MongoDB服务器已启动并正在运行的最简单方法是生成MongoDB Shell。 让我们在示例中执行以下命令来查看该文件: bin / mongo (或Windows上的bin \ mongo.exe )。 默认情况下,shell尝试使用名称test连接到本地计算机和数据库上的MongoDB服务器实例。
如果db.stats()命令及其输出使您感到困惑,请不要担心。 在下一部分中,我们将在MongoDB Shell上花费更多的时间,目前,我们仅检查服务器是否真的准备好接受连接和执行命令。
8.接下来
这部分让我们对MongoDB及其功能进行了初步了解,并介绍了几个特定于它的新术语:集合和文档。 我们还看到了在主要操作系统上安装和运行MongoDB多么容易,这对于初学者来说是一个很大的优势。
在下一部分中,我们将使用MongoDB Shell和丰富的命令和查询与服务器内部,数据库,集合和文档紧密合作。
翻译自: https://www.javacodegeeks.com/2015/09/mongodb-installation-how-to-install-mongodb.html