MongoDB初认识

举报
WHYBIGDATA 发表于 2023/02/24 07:33:39 2023/02/24
【摘要】 MongoDB初认识

MongoDB初认识



0. 写在前面

  • Linux版本:CentOS7.5

  • MongoDB版本:MongoDB-5.0.2(Linux环境下安装)

1. MongoDB是什么

  • MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。

  • MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

  • MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。

  • MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

如下图所示:

1.jpg

2. MongoDB的优缺点

优点:

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易;

  • 内置GridFS,支持大容量的存储;

  • 可以在MongoDB记录中设置任何属性的索引;

  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言;

  • 安装简单;

  • 复制(复制集)和支持自动故障恢复;

  • MapReduce 支持复杂聚合。

缺点:

  • 不支持事务;

  • 占用空间过大;

  • 不能进行表关联;

  • 复杂聚合操作通过MapReduce创建,速度慢;

  • MongoDB 在你删除记录后不会在文件系统回收空间。除非你删掉数据库。

3. 基础概念解析

SQL 术语**/**概念 MongoDB 术语**/**概念 解释**/**说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 不支持 表连接,MongoDB 不支持
primary key primary key 主键,MongoDB 自动将_id 字段设置为主键

通过下图实例,我们也可以更直观的了解 Mongo 中的一些概念:

2.jpg

4. 安装

4.1 下载地址

https://www.mongodb.com/download-center#community

4.2 安装MongoDB

本人安装在node02机器

  • 上传下载好的压缩包到虚拟机中,然后解压安装
[whybigdata@node02 software]$ tar -zxvf mongodb-linux-x86_64-rhel70-5.0.2.tgz -C /opt/module/        
  • 重命名
[whybigdata@node02 module]$ mv mongodb-linux-x86_64- rhel70-5.0.2/ mongodb 
  • 创建数据库目录

MongoDB 的数据存储在 data 目录的 db 目录下,但是这个目录在安装过程不会自动创建,所以需要手动创建data 目录,并在 data 目录中创建 db 目录。

[whybigdata@node02 module]$ sudo mkdir -p /data/db 
[whybigdata@node02 mongodb]$ sudo chmod 777 -R /data/db/   
  • 启动 MongoDB 服务
[whybigdata@node02 mongodb]$ bin/mongod
  • 查看mongod进程
ps -ef | grep mongod | grep -v grep | awk '{print$2}'

上述进程查询命令等价于以下命令

pgrep –f mongo

4.3 pgrep使用

  • 使用方式
[whybigdata@node02 mongodb-5.0.2]$ pgrep --help

Usage:
 pgrep [options] <pattern>

Options:
 -d, --delimiter <string>  specify output delimiter
 -l, --list-name           list PID and process name
 -a, --list-full           list PID and full command line
 -v, --inverse             negates the matching
 -w, --lightweight         list all TID
 -c, --count               count of matching processes
 -f, --full                use full process name to match
 -g, --pgroup <PGID,...>   match listed process group IDs
 -G, --group <GID,...>     match real group IDs
 -n, --newest              select most recently started
 -o, --oldest              select least recently started
 -P, --parent <PPID,...>   match only child processes of the given parent
 -s, --session <SID,...>   match session IDs
 -t, --terminal <tty,...>  match by controlling terminal
 -u, --euid <ID,...>       match by effective IDs
 -U, --uid <ID,...>        match by real IDs
 -x, --exact               match exactly with the command name
 -F, --pidfile <file>      read PIDs from file
 -L, --logpidfile          fail if PID file is not locked
 --ns <PID>                match the processes that belong to the same
                           namespace as <pid>
 --nslist <ns,...>         list which namespaces will be considered for
                           the --ns option.
                           Available namespaces: ipc, mnt, net, pid, user, uts

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see pgrep(1).

4.4 进入 shell 交互页面

[whybigdata@node02 mongodb]$ bin/mongo

Linux安装MongoDB可以参考下面的这篇文章:

https://juejin.cn/post/7147226612978122760

全文结束!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。