MongoDB数据库--简介安装(一)

一、MongoDB简介

  MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
  MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便,主要特性有:
1.面向集合存储,易于存储对象类型的数据
2.模式自由
3.支持动态查询
4.支持完全索引,包含内部对象
5.支持复制和故障恢复
6.使用高效的二进制数据存储,包括大型对象
7.文件存储格式为BSON(一种JSON的扩展)

官网:https://www.mongodb.com/

MongoDB与关系型数据库对比:

对比项 MongoDB MySQL Oracle
集合 二维表table
表的一行数据 文档document 一条记录record
表字段 键key 字段field
字段值 值value 值value
主外键 PK,FK
灵活度扩展性 极高

逻辑结构关系对比

关系型数据库:
MySQL数据库(database)、表(table)、记录(rows)三个层次概念组成。
非关系型数据库:
MongoDB数据库(database)、集合(collection)、文档对象(document)三个层次概念组成。
MongoDB里的集合对应于关系型数据库里的表,但是集合中没有列、行和关系的概念,集合中只有文档,一个文档就相当于一条记录,这体现了模式自由的特点。

二、安装

  1. 下载
    下载地址:https://www.mongodb.com/download-center/community

    下载地址

  2. 使用yum安装

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

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

# 更新所有包 
[root@master ~]# yum update
# 安装MongoDB
[root@master ~]# yum -y install mongodb-org
# 查看mongo安装位置
[root@master ~]# whereis mongod
mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1
# 修改配置文件
[root@master ~]# vi  /etc/mongod.conf
bindIp: 172.0.0.1  改为 bindIp: 0.0.0.0
# 启动MongoDB 
[root@master ~]# systemctl start mongod
# 设置开机启动
[root@master ~]# systemctl enable mongod

  1. 连接数据库
# 进入数据库
[root@master ~]# mongo
MongoDB shell version v4.0.13
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ac88d69d-23d5-4e64-8bd0-27ce9e0cfd46") }
MongoDB server version: 4.0.13
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] 
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] 
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] 
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] 
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-11-17T21:52:17.942+0800 I CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> 
# 查看数据库
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

  1. 配置用户密码
# 超级管理员
db.createUser({user:"admin",pwd:"1234",roles:["userAdminAnyDatabase"]})

注意 : 这个上面创建一个拥有 userAdminAnyDatabase 角色,用来管理用户的用户,可以通过这个角色来创建、删除用户,这个并不能操作admin这个数据库,我们想要操作所有数据库的权限,此时我们可以在进行创建一个管理所有数据库的账号。

# 超级管理员
db.createUser({user:"root",pwd:"1234",roles:[{role:"readWriteAnyDatabase",db:"admin"}]})

使用这个命令,可以添加所有的读写权限,我们发现mongodb对权限分的特别细,无法赋予多个权限,而且只能再admin数据库验证了用户后才可对其他数据库操作,所以添加了一个账号,先验证后,然后赋予所有数据库读写权限。

  1. 开启权限校验
# 编辑/etc/mongod.conf
security:
  authorization: enabled
# 重启数据库
systemctl restart mongod

# 切换到数据库
> use admin
switched to db admin

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

三、MongoDB数据类型

数据类型 描述 举例
null 表示空值或未定义的对象 {“x”:null}
布尔值 真或假:true或false {“x”:true}
32位整数 32位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位整数 64位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位浮点数 64位浮点数。shell中的数字就是这一种类型 {“x”:3.14,“y”:3}
字符串 UTF-8字符串 {“foo”:“bar”}
符号 shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串
对象id 文档的12字节的唯一id {“id”:ObjectId()}
日期 从标准纪元开始的毫秒数 {“date”:new Date()}
正则表达式 文档中可以包含正则表达式,遵循JavaScript的语法 {“foo”:/foobar/i}
代码 文档中可以包含JavaScript代码 {“x”:function(){}}
未定义 undefined {“x”:undefined}
数组 值的集合或者列表 {“arr”: [“a”,“b”]}
内嵌文档 文档可以作为文档中某个key的value {“x”:{“foo”:“bar”}}

四、MongoDB客户端工具

  NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它自带一些mongodb工具来管理数据库和监控服务器。这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等。
下载地址:https://nosqlbooster.com/downloads

下载

  1. 安装连接


    安装

    连接

    测试
  2. MongoDB使用


    使用

五、MongoDBCompass

  MongoDB Compass是一款优秀可靠的mongodb可视化数据库管理软件。可以更加方便地与mongodb数据库进行交互,支持对数据库进行查询、分析或者查看数据库的结构等操作。

  1. 下载地址
    https://www.mongodb.com/download-center/compass

  2. 安装


    安装
安装
安装

安装
  1. 连接数据库


    连接数据库

    连接数据库
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容

  • NoSql数据库优缺点 在优势方面主要体现在下面几点: 简单的扩展 快速的读写 低廉的成本 灵活的数据模型 在不足...
    dreamer_lk阅读 2,718评论 0 6
  • mogon简介 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可...
    猪哥亮阅读 2,000评论 0 10
  • Mongodb数据库 课程介绍 Ø 数据库概述(了解) Ø NoSQL和MongoDB简介(了解) Ø Mongo...
    致自己_cb38阅读 1,759评论 0 4
  • MongoDB MongoDB是面向文档的数据库,而非关系型数据库。它扩展了关系型数据库的众多有用功能,如辅助查询...
    faner阅读 693评论 0 3
  • 一、Mongodb数据库 Day01 1.课程介绍 数据库概述(了解) NoSQL和MongoDB简介(了解) M...
    满天繁星_28c5阅读 490评论 0 5