MongoDB 初学者 – 介绍和安装(上)
Mongo 是一个开源的无模式数据库系统,与更流行的 MySQL 有很大不同。最大的区别是 MySQL 是使用 SQL 查询编写的,而MongoDB 专注于 BSON(二进制 JSON)。
这意味着可以通过 JavaScript 符号直接访问许多功能。
但是 Mongo 带有它自己的 shell 界面,可以直接在你的数据库上运行命令。在这篇文章和其他几篇文章之后,我们将:
- 探索使用 Mongo 启动和运行系统( Windows和Mac )的步骤,
- Mongo shell 命令的工作原理
- 使用 PHP 安装 MongoDB
如果 Web 开发人员熟悉JSON ,他们将最喜欢 Mongo 。这种基于 JavaScript 的语言专注于包含键值对的对象。
它与包含数据行/列的常规 SQL 表有点不同。但 MongoDB 无疑是一个有吸引力的数据库系统,值得一试。
为什么选择 MongoDB?
除了 Mongo,您还可以选择尝试其他一些无模式数据库。就个人而言,我只听说过有关该项目的好消息,它支持广泛的操作系统(Windows、OSX、Linux)。此外,核心团队仍在积极及时推送代码发布。
在MongoDB 网站上,我看到一篇将 MongoDB 与 CouchDB 进行比较的文章,后者目前归 Apache 所有。它们都使用 JSON 来存储数据,并且都可以为大容量应用程序提供支持。这可能是另一种个人意见具有权威性的场景,但我觉得 Mongo 为新手提供了更多的支持和文档。
我认为 MongoDB 可能最适用于测试新应用程序并了解如何使用自由格式对象构建数据库的情况。SQL 可能非常有限,我认为无模式数据库在构建移动应用程序时更有用。
甚至还有面向 iPhone 开发人员的开源Objective-C Mongo 库,以及面向使用 Java 的 Android 程序员的大量其他资源。
我认为 MongoDB 的可靠性和可用的集体代码库是学习该系统的最强有力的理由之一。几乎所有语言都有驱动程序,包括 C/C++、Python、PHP、Ruby、Perl、.NET,甚至是 Node.js。
对于厌倦了使用 SQL 的局限性并想尝试新事物的 Web 开发人员来说,这是一个强大的解决方案。
关键术语
在开始安装和测试 Mongo 数据库之前,我想解释几个稍后可能会造成混淆的术语。
MongoDB 仍然可以像 MySQL 一样在一个安装包中容纳各种不同名称的数据库。但数据库内部是集合,而不是表。
一个集合可以被认为是一个表,除非没有对齐的列。每个条目(行)都可以在键值对中使用不同的动态模式。
例子:
在一组用户中,可能有一个包含名字和姓氏的条目。然后是另一个条目,其中包含名字、姓氏和中间名,以及电子邮件地址和出生日期。这是灵活的 MongoDB 系统,它使这些数据库易于使用。
现在,集合中的每个条目或行都称为文档。它们不是 .txt 或 .html 之类的物理文档,而是基于文档的对象。它们基本上是存储在内存映射文件中的 JSON 数据块,这些文件在您的集合中充当单独的条目。
例子:
在我们的用户集合中,我们的所有 500 个用户可能有 500 个文档对象。并且如前所述,每个文档不需要匹配具有相同字段的其他文档。唯一的要求是一个唯一的 ID 号,MongoDB 会自动将其添加到每个文档对象中。
我能理解这个术语一开始会令人困惑。一旦你看到一切都在运作,这就很有意义了。如果您有几分钟的时间,请尝试浏览Mongo 在线文档以澄清任何模糊的想法。
即使您没有 100% 了解这个概念也没关系!许多人每天都在使用 MySQL,但对数据库的工作原理却有着同样模糊的理解。
现在让我们进入所有内容并设置我们的 MongoDB 实例。
自定义 MongoDB 设置过程
我想回顾一下这两个过程:
- 在 Mac OS X 上设置MongoDB ,以及
- 在 Windows 上设置MongoDB
我将使用最新版本的 OSX Mountain Lion 和 Windows 7。安装 Mongo 后,我们需要使用适用于 Windows的WAMP或适用于 OS X.3的MAMP配置本地服务器
如何在 macOS 中安装 Mongo
将 MongoDB 安装到您的 Mac 上将比 Windows 容易得多。通过终端,我们可以运行一些命令来从 MacPorts 下载最新版本。在线文档实际上有一个针对 Mac OS X 的小教程,其中包含类似的信息。
首先让我们检查并更新到最新版本的MacPorts。在终端中输入命令:
sudo port selfupdate
您也可以像这样为详细输出添加调试标志:
sudo port -d selfupdate
该过程可能需要几分钟才能下载并安装所有内容。
更新完成后,我们只需要在终端中运行一行。这将拉取最新的 MongoDB 库文件并将它们与其他系统依赖项一起存储。
1个
|
port install mongodb |
即使使用快速 Internet 连接,此过程也很容易需要 10-15 分钟。安装需要一些时间并且可能会更快,但是在您打开闪烁的终端命令之前先放手。
然后你应该能够通过运行来启动服务器:
1个
|
mongod |
它应该以短语“等待端口 27017 上的连接”结尾。
这意味着我们已启动并正常运行数据库服务。您可以通过在 Web 浏览器中访问http://localhost:28017/来测试它。MongoDB 提供了一个小型 Web 界面来查看有关数据库和安装的更多信息。
这里最后一个有趣的部分是强制 mongod 在您的计算机启动时立即打开。Hunter Ford 在他的网站上有一个很好的教程,这是我这里的代码的基础。通过强制将 mongod 进程作为启动项,您将不需要保持终端窗口打开以进行开发。
首先,您需要下载此文档并将其移动到:/Library/LaunchDaemons/org.mongo.mongod.plist
。
然后在终端中为新系统数据创建一个小日志文件和一个目录:
1个
2个
|
sudo touch / var /log/mongodb.log sudo mkdir / var /lib/mongodb |
最后运行以下命令来设置启动器。您可以选择之后重新启动计算机,然后查看 Mongo 是否在重新启动时正常工作。
1个
2个
3个
|
sudo chown root:wheel /Library/LaunchDaemons/org.mongo.mongod.plist sudo launchctl load /Library/LaunchDaemons/org.mongo.mongod.plist sudo launchctl start org.mongo.mongod |
如何在 Windows 中安装 Mongo
在不使用管理员帐户的情况下,我很难让 MongoDB 正常安装和运行。这不是必需的,因为“以管理员身份运行”选项始终可用。
但是如果你有能力,只需在命令提示符下运行它,然后重新启动你的计算机。您应该注意到管理员是一个新的登录选项。
1个
|
net user administrator /active:yes |
如果遇到麻烦,MongoDB 有专门为 Windows 用户创建的很棒的在线安装指南。要获取您的副本,请访问下载页面并找到您的 Windows 版本。在撰写本文时,最新的稳定版本是 MongoDB 2.2.0:这里是win32和win64直接下载。
我们将把所有这些文件直接放在一个目录C:\mongodb\
中。因此,一旦下载完成,解压缩 zip 并打开文件夹,直到找到 /bin/ 和其他一些文件。选择所有这些并剪切/粘贴到我们的新 C:\mongodb\ 目录中。
现在仍然在这个文件夹中\bin\
创建一个名为“log”的新文件夹,它将存储所有 MongoDB 系统日志。我们还需要创建两个外部目录用于数据存储,C:\data\
和C:\data\db\
.
这是使用非管理员帐户可能会导致麻烦的部分。打开命令提示符并运行cd C:\mongodb\bin
.
然后我们希望在 shell 中启动mongod.exe,但是在运行它之后你会注意到在监听连接时操作会冻结。好吧它实际上并没有被冻结,我们直接通过终端运行 Mongo。
每次这样做都会很烦人,所以让我们运行一个命令,将 Mongo 配置为作为 Windows 服务自动启动。
1个
|
> echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg |
第一条命令将为服务创建一个日志文件和配置。不是必需的,但作为数据库管理员的良好做法。
现在在终端中运行这两行代码来创建服务并启动它。
1个
2个
|
> C:\mongodb\bin\mongod.exe --config C:\mongodb\mongod.cfg --install > net start MongoDB |
如果没有错误,那么整个过程就完成了!
通过打开“运行”菜单 ( Windows + R ) 并键入services.msc检查该服务是否处于活动状态。
这将显示一个活动的服务列表,如果您向下滚动,您应该会找到状态为“活动”且启动类型为“自动”的 Mongo DB。
与 Mac 安装一样,您可以直接从命令提示符访问 Mongo shell 终端。将目录更改为C:\mongodb\bin\
并键入mongo
,然后按 Enter。
您应该有权访问当前的 MongoDB 服务器。现在您可以运行 Mongo shell 命令来创建数据库、集合、存储新数据或编辑旧数据条目。
运行以下行以显示服务器上的所有当前数据库:
1个
|
> show dbs |
目前为止就这样了!我希望您对什么是 MongoDB 以及如何在您的机器上安装它有一个很好的了解。在下一篇文章中,我们将研究MongoDB 的一些基本 shell 命令。
MongoDB 初学者 – 基本 Shell 命令(第二部分)
在之前的 MongoDB 初学者指南中,我介绍了 MongoDB 的重要性和术语以及…… 阅读更多