MongoDB快速入门(上)

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB快速入门

随着大数据时代的到来,数据急速增长,导致关系型数据库(SQL)越来越不够用。高性能、可扩展的数据库变得越来越重要起来,在这样的场景下,非关系型数据库(NoSQL)应运而生,这里的“NoSQL”不是“NoSQL(不是SQL)”,而是“Not only SQL(不仅是SQL)”的简称。2009年,分布式文档型数据库MongoDB引发了一场去SQL的浪潮。


1.1 非关系型数据库的分类及特点非关系型数据库主要分为以下几类


  • 1.键值数据库

主要代表是Redis、Flare。这类数据库具有极高的读写性能,用于处理大量数据的高访问负载比较合适。


  • 2.文档型数据库

主要代表是MongoDB、CouchDB。

这类数据库满足了海量数据的存储和访问需求,同时对字段要求不严格,可以随意地增加、删除、修改字段,且不需要预先定义表结构,所以适用于各种网络应用。


  • 3.列存储数据库

主要代表是Cassandra、Hbase。这类数据库查找速度快,可扩展性强,适合用作分布式文件存储系统。


  • 4.图数据库

主要代表是InfoGrid、Neo4J。这类数据库利用“图结构”的相关算法,适合用于构建社交网络和推荐系统的关系图谱。


1.2 MongoDB适合做什么


MongoDB适合储存大量关联性不强的数据。MongoDB中的数据以“库”—“集合”—“文档”—“字段”结构进行储存。这种结构咋看和传统关系型数据库的“库”—“表”—“行”—“列”结构非常像。但是,MongoDB不需要预先定义表结构,数据的字段可以任意变动,并发写入速度也远远超过传统关系型数据库。


1.3 从文件到MongoDB数据库


对于少量数据,可以使用“记事本”程序来保存。但如果需要对数据进行计算,那么记事本显然就不能胜任了。此时可以考虑 Excel。还可以使用Excel 的数据透视表来统计数据,如图所示。


640.png


Excel的一张表可以存放100万行左右的数据,那如果每天的数据都超过100万行呢?此时就不得不使用数据库来保存了。


使用MongoDB保存数据使用数据库,可以保存大量的数据,这是数据库最基本的功能。另外,数据库还能够对数据进行逻辑运算、数学运算、搜索、批量修改或删除。相比于传统的关系型数据库,MongoDB对于每一次插入的字段格式没有要求,字段可以随意变动,字段类型也可以随意变动,如图所示。


640.png


MongoDB可以并发插入上万条文档,这是传统关系型数据库所不能望其项背的。


2 MongoDB快速入门


会介绍MongoDB的安装和基本语法。另外,介绍在图形化管理工具Robo 3T中操作MongoDB,以及使用Python操作MongoDB的方法


MongoDB的语法与Python非常相似。在很多情况下,操作MongoDB的代码都可以直接用到Python中。所以,结合Python来学习MongoDB可以起到事半功倍的效果


1.1 MongoDB和SQL术语对比


SQL与MongoDB术语对比见


SQL MongoDB
表(Table) 集合(Collection)
行(Row) 文档(Document)
列(Col) 字段(Field)
主键(Primary Key) 对象ID(Objectid)
索引(Index) 索引(Index)
嵌套表(Embeded Table) 嵌入式文档(Embeded Document)
数组(Array) 数组(Array)


1.2  安装MongoDB


1.2.1 在Windows中安装



640.png


  • (2)双击下载的文件(如无特殊说明,只需要一直单击“Next”按钮即可)。在安装过程中将会看到如图所示的界面选择安装方式,这里单击“Custom”按钮。


640.png

640.png


  • (3)修改文件的安装路径到 D:\MongoDB\Server\,单击“Next”按钮进行安装,如图所示。


640.png


  • (4)安装完成以后,进入D:\MongoDB\Server\4.2\bin,可以看到如图所示的内容,配置文件为mongod.cfg


640.png


  • (5)日志路径为D:\MongoDB\Server\4.2\log

正常安装完成之后,mongodb已经注册到服务,并已正常运行,后续的启停都在这里管理


640.png


1.2.2 在Linux中安装


由于 Linux 有众多的发行版,不同发行版本有不同的包管理工具,所以在各个发行版本中安装MongoDB的命令可能会有一些差异。本文以Centos7.6为例,来说明如何安装MongoDB。


1.配置MongoDB的yum源


创建yum源文件


添加以下内容:(我们这里使用阿里云的源,安装的是4.25版本)


[root@localhost ]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# vim mongodb-org-4.2.repo
[mngodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.2/x86_64/
gpgcheck=0
enabled=1


这里可以修改 gpgcheck=0, 省去gpg验证


安装之前先更新所有包 :


[root@localhost yum.repos.d]# yum update


2.安装MongoDB


安装命令:


[root@localhost yum.repos.d]# yum -y install mongodb-org


安装完成后


查看mongo安装位置 whereis mongod


[root@localhost yum.repos.d]# whereis mongod
mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1


查看修改配置文件 :vim /etc/mongod.conf

bindIp: 172.0.0.1 改为 bindIp: 0.0.0.0

(注意冒号与ip之间需要一个空格)


[root@localhost yum.repos.d]# cat /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  wiredTiger:
# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:


3.启动MongoDB


启动mongodb :systemctl start mongod.service

停止mongodb :systemctl stop mongod.service

查到mongodb的状态:systemctl status mongod.service

设置开启自启动:systemctl enable mongod.service


[root@localhost yum.repos.d]# systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-04-04 16:01:31 CST; 8s ago
     Docs: https://docs.mongodb.org/manual
  Process: 5492 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 5488 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 5485 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 5481 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
 Main PID: 5495 (mongod)
   CGroup: /system.slice/mongod.service
           └─5495 /usr/bin/mongod -f /etc/mongod.conf
Apr 04 16:01:30 localhost.localdomain systemd[1]: Starting MongoDB Database Server...
Apr 04 16:01:30 localhost.localdomain mongod[5492]: about to fork child process, waiting until server is ready for connections.
Apr 04 16:01:30 localhost.localdomain mongod[5492]: forked process: 5495
Apr 04 16:01:31 localhost.localdomain mongod[5492]: child process started successfully, parent exiting
Apr 04 16:01:31 localhost.localdomain systemd[1]: Started MongoDB Database Server.


4.外网访问需要关闭防火墙


CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

关闭firewall:


systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
vim /etc/sysconfig/iptables
iptables文件添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
(注意:-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前,不然启动无效)


3 MongoDB的图形化管理软件——Robo 3T


MongoDB虽然自带了一个终端环境下的客户端,但是操作起来比较繁琐,数据显示也不够直观,因此需要使用一个图形界面管理软件来提高MongoDB数据的可读性。


3.1 安装


Robo 3T是一个跨平台的MongoDB管理工具,采用图形界面查询或者修改MongoDB。Robo 3T的下载地址为:https://robomongo.org/download。在下载页面中可以看到另一个叫作 Studio 3T 的软件,它是一个功能更加强大的MongoDB图形化管理软件,但它是一个商业软件,需要收费,而Robo 3T是开源软件并且免费,它的功能足够应付本书的所有应用场景,因此本文选择使用Robo 3T。


  • (1)安装Robo 3T的安装没有任何需要特别说明的地方,和安装普通软件一样简单


640.png


  • (2)第一次成功启动Robot 3T时,会看到一个用户协议,如图所示,勾选“我接受”按钮


640.png


  • (3)选择需要安装的路径,然后点击安装即可


  • (4)在下一个界面中添加名字公司之类的信息,可以直接忽略,单击“完成”按钮跳过即可


3.2 用Robo 3T连接MongoDB


  • (1)打开Robo 3T,看到如图所示对话框,单击左上角“Create”链接。


640.png


  • (2)弹出如图所示对话框。如果MongoDB就在本地电脑中运行,则只需在“Name”栏中填写一个名字,其他地方不需要修改,然后直接单击“Save”按钮


  • (3)保存回到界面后,单击“Connect”按钮就可以连接MongoDB了


3.3 认识Robo 3T的界面


Robo 3T的主界面如图所示。重点关注A、B、C三个区域


640.png


  • 数据库列表区(后简称A区域),用于选择数据库和集合。
  • 数据展示区(后简称B区域),用于显示数据。
  • 命令执行区(后简称C区域),用于编写MongoDB代码。


在A区域中,单击数据库图标左边的箭头,展开数据库;单击“Collections”左边的箭头,展开集合。双击集合的名字,则B区域和C区域发生相应的变化。

相关实践学习
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
存储 NoSQL 关系型数据库
❤️一文快速入门MongoDB数据库❤️
❤️一文快速入门MongoDB数据库❤️
101 0
|
8月前
|
NoSQL Linux MongoDB
轻松掌握组件启动之MongoDB:快速入门、Linux安装和Docker配置指南
本文总结了MongoDB的快速入门、Linux安装和Docker配置指南。它提供了一步步的操作指引,帮助读者迅速上手MongoDB,并了解如何在Linux环境下进行安装、启动和配置。此外,文章还介绍了使用Docker安装和配置MongoDB的方法,使读者能够更轻松地部署和管理MongoDB实例。
|
10月前
|
SQL NoSQL MongoDB
MongoDB快速入门 2
MongoDB快速入门
50 1
|
10月前
|
存储 NoSQL 关系型数据库
MongoDB快速入门 1
MongoDB快速入门
138 1
|
存储 JSON NoSQL
MongoDB从入门到实战之MongoDB快速入门
MongoDB从入门到实战之MongoDB快速入门
291 0
MongoDB从入门到实战之MongoDB快速入门
|
存储 SQL NoSQL
【探花交友】学习MongoDB快速入门上手
【探花交友】学习MongoDB快速入门上手
75 0
【探花交友】学习MongoDB快速入门上手
|
存储 监控 NoSQL
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
快速学习 MongoDB 快速入门-MongoDB 最佳实践(二)
440 0
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
|
JSON 运维 NoSQL
|
存储 SQL NoSQL
MongoDB快速入门
mangodb 一、mongodb的介绍 1、nosql的介绍 "NoSQL"⼀词最早于1998年被⽤于⼀个轻量级的关系数据库的名字 随着web2.
1367 0