Date
Nov. 21st, 2024
 
2024年 10月 21日

Post: MongoDB Primer 001: 介绍与安装

MongoDB Primer 001: 介绍与安装

Published 12:10 Oct 15, 2015.

Created by @ezra. Categorized in #Programming, and tagged as #Database.

Source format: Markdown

Table of Content

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 Web 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点

它的特点是:

  • 高性能

  • 易部署

  • 易使用

  • 存储数据非常方便

主要功能特性有:

  • 面向集合存储,易存储对象类型的数据。

  • 模式自由。

  • 支持动态查询。

  • 支持完全索引,包含内部对象。

  • 支持查询。

  • 支持复制和故障恢复。

  • 使用高效的二进制数据存储,包括大型对象 (如视频等) 。

  • 自动处理碎片,以支持云计算层次的扩展性。

  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

  • 文件存储格式为BSON (一种JSON的扩展) 。

  • 可通过网络访问。

安装

在进行操作之前,我们需要先下载安装 MongoDB,在官方网站 (https://www.mongodb.com) 可以轻易找到下载页面 (https://www.mongodb.com/download-center),选择相应的系统平台并点击下载按钮即可。下载后的文件是一个 .tgz 包 (针对 Windows 平台的是 .msi)。

手动安装

先来介绍手动安装的方法,对 OS X 和 Linux 用户,你也可以参考后面具有针对性的安装方法。

手动安装时,如果你下载的是 .tgz 文件,你应该先进行文件提取:

tar -zxvf mongodb-osx-x86_64-3.4.0-rc0.tgz

当然,具体的 .tgz 文件名依据情况会有所不同。提取后,一般我们还会将提取到的文件复制或移动到指定的目录:

mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-3.4.0-rc0/ mongodb

接下来还需要配置 PATH 变量,例如 ~/.bashrc 中加入:

export PATH=<mongodb-install-directory>/bin:$PATH

当然这也依据实际情况有所不同。其中,<mongodb-install-directory> 部分表示刚才我们指定的目录。

OS X: Homebrew

对于 OS X,你还可以使用 Homebrew 来进行安装。要使用 Homebrew 安装,首先你应当更新其数据库:

brew update

然后进行安装:

brew install mongodb

如果你需要 TLS/SSL 支持,这样安装:

brew install mongodb --with-openssl

如果你愿意安装最新的开发版本,这样安装:

brew install mongodb --devel

Linux: yum

对于 Linux,你可以选择使用 yum 来进行安装。但 Linux 版本众多,实际情况请参考 官方说明,这里不做赘述。

启动

第一步,建立数据目录,默认使用 /data/db 目录。

sudo mkdir -p /data/db

第二步,你需要确认你的账户对这个文件夹具有读写权限。

第三步,启动。如果你的 PATH 变量包含了 mongod 二进制文件的路径,并且你使用了默认的数据库目录,则只需要执行:

mongod

如果你的 PATH 没有包含该二进制文件路径,则执行这样的命令来启动:

full_path_to_binary/mongod

如果你指定了其它数据库目录:

mongod --dbpath full_path_to_data_directory

如果你不具备权限,会有 Permission denied 错误。

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询