MongoDB 简介

MongoDB 是一个开源的、面向文档的数据库管理系统(DBMS),它将数据存储在类似 JSON 的文档中,这些文档被称为二进制 JSONBSON)——它是 MongoDBJSON 文档的二进制表示,比普通的 JSON 解析速度更快。自 2009 年以来,它是最流行的 NoSQL 数据库系统之一,与关系数据库管理系统(RDBMS)不同,它不使用表和行。在 MongoDB 中,数据的每个记录都是一个文档,该文档由类似于 JSON 对象的名称-值对(或字段-值对)组成,但它是以二进制编码的,以支持 JSON 范围之外的数据类型,例如 ObjectIdDate 和二进制数据( https://www.google.com/search?q=https://docs.mongodb.com/manual/reference/bson-types/ )。因此,它被称为二进制 JSON。例如,一个 {"hello":"world"} 的文档将以 .bson 文件的形式存储如下:

1600 0000 0268 656c 6c6f 0006 0000 0077 6f72 6c64 0000

实际上,BSON 中的编码数据不是人类可读的,但是在使用 MongoDB 时我们不必过于担心这一点,因为 MongoDB 驱动程序会为你开箱即用地进行编码和解码。你只需要在使用熟悉的 JSON 文档构建 BSON 存储的文档时,使用 MongoDB 的语法、方法、操作和选择器。让我们安装 MongoDB 并开始编写。

安装 MongoDB

根据版本(社区版或企业版)和平台(WindowsUbuntumacOS),安装 MongoDB 有几种方法。你可以参考这里提供的链接:

在 Ubuntu 20.04 上安装

本书中,我们将在 Ubuntu 20.04 (Focal Fossa) 上安装 MongoDB 4.2(社区版)。如果你使用的是 Ubuntu 19.10 (Eoan Ermine),安装过程也一样。如果你使用的是其他旧版本的 Ubuntu,例如 14.04 LTS (Trusty Tahr)、16.04 LTS (Xenial Xerus) 或 18.04 LTS (Bionic Beaver),请参考上一节中提供的 “在 Ubuntu 上安装 MongoDB 社区版” 的链接。那么,让我们开始吧:

  1. mongodb.org 导入公钥:

    $ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

    你应该在响应中看到 OK

  2. MongoDB 创建一个列表文件:

    $ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
  3. 更新你系统中的所有本地软件包:

    $ sudo apt-get update
  4. 安装 MongoDB 软件包:

    $ sudo apt-get install -y mongodb-org

启动 MongoDB

一旦你安装了 MongoDB 软件包,接下来你应该做的是查看是否可以从终端启动并连接 MongoDB 服务器。那么,让我们开始吧:

  1. 使用以下命令手动或在启动时自动启动 MongoDB

    $ sudo systemctl start mongod
    $ sudo systemctl enable mongod
  2. 通过检查其版本进行验证:

    $ mongo --version

    你应该在终端上得到类似于以下的输出:

    MongoDB shell version v4.2.1
    git version: edf6d45851c0b9ee15548f0f847df141764a317e
    OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
    allocator: tcmalloc
    modules: none
    build environment:
     distmod: ubuntu1804
     distarch: x86_64
     target_arch: x86_64
  3. (可选)使用以下命令检查 MongoDB 服务器状态:

    $ sudo service mongod status

    你应该在终端上得到类似于以下的输出:

    ● mongod.service - MongoDB Database Server
       Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2019-08-30 03:37:15 UTC; 29s ago
         Docs: https://docs.mongodb.org/manual
      Main PID: 31961 (mongod)
       Memory: 68.2M
       CGroup: /system.slice/mongod.service
       └─31961 /usr/bin/mongod --config /etc/mongod.conf
  4. (可选)使用 netstat 命令检查 MongoDB 是否已在端口 27017 上启动:

    $ sudo netstat -plntu

    你应该看到以下类似的输出:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp        0      0 127.0.0.1:27017         0.0.0.0:* LISTEN      792/mongod
  5. 连接到 MongoDB Shell:

    $ mongo
  6. 退出 MongoDB Shell(当你想要退出时):

    > exit

    如果由于任何原因想要从你的系统中完全删除 MongoDB,请使用此命令:

    $ sudo apt-get purge mongodb-org*

    在下一节中,你将开始从你刚刚学习的 MongoDB Shell 中编写一些基本查询。让我们直接开始。