MongoDB

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

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

特性

  • 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
  • 格式自由,数据格式不固定,生产环境下修改结构都可以不影响;
  • 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能;
  • 完整的索引支持,支持查询计划;
  • 支持复制和自动故障转移;
  • 支持二进制数据及大型对象(文件)的高效存储;
  • 使用分片集群提升系统扩展性;
  • 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;

基本概念

数据库(database)

  • 数据库是一个仓库,在仓库中可以存放集合。

集合(collection)

  • 集合就是一组文档,也就是集合是用来存放文档的
  • 集合中存储的文档可以是各种各样的,没有格式要求

文档(document)

  • 文档数据库中的最小单位,我们存储和操作的内容都是文档。
  • 类似于JS中的对象,在MongoDB中每一条数据都是一个文档

多个文档组成集合,多个集合组成数据库

与传统数据库的对比

使用场景

  • 游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
  • 物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  • 社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
  • 物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
  • 视频直播,使用 MongoDB 存储用户信息、礼物信息等

不适合场景:

  • 高度事务性系统:例如银行、财务等系统。MongoDB对事物的支持较弱;
  • 传统的商业智能应用:特定问题的数据分析,多数据实体关联,涉及到复杂的、高度优化的查询方式;
  • 使用sql方便的时候;数据结构相对固定,使用sql进行查询统计更加便利的时候;

安装

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

安装环境:Centos7,mongodb-3.4.10

安装包:https://pan.baidu.com/s/1Kk_J6PbAJpo7uPUy3_6hJw 密码:gdjt

下载

cd /usr/local/software
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.10.tgz

解压

tar -zxvf mongodb-linux-x86_64-3.2.3.tgz -C /usr/local/mongodb

在安装目录下,新建data目录和logs目录,mongodb.log文件

cd /usr/local/mongodb/mongodb-linux-x86_64-rhel70-3.4.10/
mkdir data
mkdir logs
cd logs
touch mongodb.log

创建并修改配置文件

cd /usr/local/mongodb/mongodb-linux-x86_64-rhel70-3.4.10/bin
vim mongodb.conf

添加配置

storage:dbPath: "/usr/local/mongodb/mongodb-linux-x86_64-rhel70-3.4.10/data"
systemLog:destination: filepath: "/usr/local/mongodb/mongodb-linux-x86_64-rhel70-3.4.10/logs/mongodb.log"
net:port: 27022http:RESTInterfaceEnabled: true
processManagement:fork: false

mongodb3.x版本后就是要yaml语法格式的配置文件,不支持tab方式缩进,首行4个空格,采用key-value方式

key冒号后面需空一格。

启动mongodb

编写shell脚本,命名为start-mongodb.sh,脚本内容如下:
nohup ./mongod -f mongodb.conf &
使用start-mongodb.sh启动mongodb实例,如:./start-mongodb

常见的命令

浏览器访问:http://192.168.0.105:28022/

至此安装完成。

后面继续介绍mongodb使用,高可用,原理等。也可以关注我的头条号,代码接盘侠。

MongoDB的学习,初识MongoDB相关推荐

  1. Mongodb系列:初识Mongodb

    一.背景: 月初进行了期末考试很荣幸能够参加到了考试系统维护中(详情请阅读:<那些年我们一起参加的活动:15年上半年考试系统维护总结>)!主要负责服务器维护,在维护期间对Mongodb相逢 ...

  2. MongoBD 系列(1) —— 初识 MongoDB

    初识 MongoDB 文章目录 初识 MongoDB 什么是MongoDB? MongoDB 的安装 1. 传统二进制安装 2. Docker 安装 MongoDB 的使用 1. MongoDB 结构 ...

  3. Mongodb使用学习笔记(二)

    文章目录 Mongodb使用学习笔记(二)之查询篇 1. MongoDB命令学习 (1) MongoDB 查询文档 1.1 全部查询 1.2 单条件查询 1.3 多条件查询 1.3.1 AND拼接多条 ...

  4. MongoDB开发学习开天辟地,经典入门

    如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四 ...

  5. mongodb 搜索速度_初识 MongoDB 数据库

    初识 MongoDB 数据库 前言 Flask 基础框架在之前的三篇文章中写完了.想要学习 web 相关的同学可以自己回顾翻一下,相信看完了,你也可以写出来一个简单的小案例来炫耀一波! 说到 web ...

  6. MongoDB语法学习

    MongoDB语法学习 MongoDB官方文档 mongodb语法有很多,如多列索引,查询时可以统计函数,支持多条件查询,但是目前对于多表的查询是暂不支持的,但是可以通过数据冗余来解决多表查询的问题. ...

  7. 头歌 初识MongoDB

    初识MongoDB 第1关:启动 MongoDB 第2关:启动 MongoDB 多实例 第3关:退出客户端和关闭 MongoDB 服务 第1关:启动 MongoDB cd /data mkdir my ...

  8. 手游公司运维之初识MongoDB

    接触MongoDB一年多了,之前从来没有想过自己会在工作中大量使用MongoDB.曾经一段时间,我还想过以后做一个合格的DBA,自己还学习了Oracle和MySQL数据库,但是所在的公司一直都有专门的 ...

  9. MongoDB的学习-安装与springboot的整合

    mongoDB的学习: 1.mongodb 安装及使用 mongodb 安装及使用__mongodb安装使用 MongoDB社区下载 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上 ...

  10. 尚硅谷+黑马程序员MongoDB视频学习笔记(一)

    本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...

最新文章

  1. Mysql数据库大表归档操作
  2. 排序算法之——选择排序
  3. 《深入浅出DPDK》读书笔记(十三):DPDK虚拟化技术篇(加速包处理的vhost优化方案)
  4. Struts2.X深入浅出 学习笔记
  5. VJ 1490 小菜的数码验证
  6. centos下mysql执行命令_CentOS下mysql数据库常用命令总结
  7. pcb板生产的工艺流程有哪些?
  8. 湖北自考 计算机网络,2021年湖北自考计算机网络基础课程考试大纲
  9. win10计算机的数字小键盘,如何设置Win10开机默认开启数字小键盘?
  10. 闪迪U盘插入电脑后,系统能识别到插入,但在我的电脑中没有显示的解决方法
  11. 看宗萨蒋扬清者仁波切写的《正见:佛陀的证悟》的书评
  12. Enovia 用户操作手册
  13. k8s学习笔记——ceph rbd本地手动挂载
  14. Veil+tdm-gcc免杀360火绒瑞星
  15. [-7170]:Bakres failed to connect DMAP
  16. HDU 1495 非常可乐(BFS||数论)
  17. 互联网业务数据分析- 数据指标建模(上)
  18. 在MacOS上实现两个网络调试助手的UDP通信测试
  19. 聊聊c#与Python以及IronPython
  20. PREROUTING 和 POSTROUTING, SNAT 和 DNAT图文解析(非常清淅)

热门文章

  1. 专业的视频会议和传统的即时通讯工具如QQ、微信视频聊天有什么区别
  2. Mybatis:使用Map接收结果时别名驼峰无效
  3. 【IT项目管理】第8章 协调项目人力资源
  4. c++11新特性之完美转发(std::foward)
  5. [转]unity之龙骨动画的使用
  6. 优秀笔记课件——Visio图纸设计与提高4
  7. BUGS_10 gcc编译报错"commands commence before first target. Stop"
  8. 【音视频编解码】查看软解还是硬解
  9. ArcGIS学习笔记-1.功能-1.5 栅格图基本
  10. Lua全局变量与局部变量