Mongodb学习

说明:  MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成。MongoDB是异步写数据。

第一章 环境配置


一、Mongodb简介

  • 功能特点
  • 适用范围

功能特点

官方网址:http://www.mongodb.org/ 
MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。
它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等,主要功能特性有:
面向文档存储:(类JSON数据模式简单而强大)。 
  1. 高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。
  2. 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。
  3. Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
  4. 动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  5. 全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
  6. 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。

优缺点:

mongodb作为一个很热门的nosql数据库有着比较多的优点,大概归纳为以下五点。

(1)、无模式

mongodb是一个文档型存储的数据库,每一行数据都是一个文档,每一个文档中的字段可以不一致,个数也可以不相同,而且是一个以bson方式存储的文档。bson: short for Bin­ary JSON

(2)、高性能

mongodb的高性能是怎么实现的呢?

这个主要依靠2点来解决(当然还有很多其它的)。第一点是mongodb的存储空间是预先分配的。以64位机器为例,首先分配64m,以0填充,然后每次文件空间大小翻倍,直到2G,然后每次分配2G。预先分配的好处是不需要每次存储的时候都分配空间,加快了存储的效率。第二点是mongodb的内存映射机制。mongodb首先将数据写到内存,然后异步写道硬盘上(如果是非安全模式的话)。mongodb是不管理内存的,它将这份工作交给了操作系统。

(3)、易扩展

mongodb集群是很容易扩展的(添加删除节点简单),而且可以支持数据的分片。(后面的章节会详细的介绍怎么分片以及怎么扩展)

(4)、易管理

mongodb的管理几乎都是自动的。自动故障转移:当一个分片中的primary机器down后,其它机器会自动选举,选出一台机器当primary。自动负载均衡:当两个分片的数据相差很大时,集群会自动将一部分数据转移到数据少的分片上。

(5)、多功能

mongodb的功能很多,例如:索引,聚合,分布式的文件存储,js存储过程,GridFS文件存储,定容集合等。

优点说到这,mongodb同样也有着它的限制或缺点,主要是下面两点。

(1)、mongodb占用存储空间大。

这主要是由三个因素决定的。第一,mongodb的空间预分配方式,这样会让mongodb最多浪费不超过2G+2G文件大小的空间。第二,mongodb的字段名占用,即使是相同的字段,mongodb也会在每一个文档中都存储,这里会浪费极大的空间。第三,mongodb删除数据并不会释放空间,而只是将空间记录为删除状态以便重用。

(2)、mongodb没有事务模式,所以事务要求严格的系统慎用。

适用范围

适用场景:

  1. 适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。
  2. 适合作为信息基础设施的持久化缓存层。
  3. 适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对MapReduce引擎的内置支持。
  4. Mongo的BSON数据格式非常适合文档化格式的存储及查询。

不适用场景:

  1. 高度事务性的系统。
  2. 传统的商业智能应用。
  3. 复杂的SQL查询。

二、Mongodb下载与安装

  • 下载地址
  • 安装步骤

下载地址

http://www.mongodb.org/downloads,选择相应的版本下载

安装步骤

  1. 在(C/D/E/F)盘新建文件夹MongoDB。
  2. 解压下载的文件,将bin目录拷贝到文件夹MongoDB。
  3. 在文件夹MongoDB下新建文件夹data,在文件夹data下新建文件夹db和log(db下放的是数据库文件,log下方的是windows日志,后面将讲解)。
  4. 执行命令:【mongod -auth --dbpath "E:\mongodb\data\db"】将mongodb的数据库文件创建到E:\mongodb\data\db 目录下,此时数据库就已启动。如图:

三、Mongodb服务管理

  • window服务注册
  • 服务开闭

window服务注册

注意:一定要以管理员的身份打开cmd。具体请参考官网说明http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/

使用命令【mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --logpath E:\mongodb\data\log\mongodb.log --dbpath E:\MongoDB --directoryperdb】注册window服务。

服务开闭

使用命令【net stop mongodb】关闭mongodb服务。
使用命令【net start mongodb】启动mongodb服务。

Mongodb学习笔记一(Mongodb环境配置)的更多相关文章

  1. Django:学习笔记(1)——开发环境配置

    Django:学习笔记(1)——开发环境配置 Django的安装与配置 安装Django 首先,我们可以执行python -m django --version命令,查看是否已安装django. 如果 ...

  2. MongoDb 学习笔记(一) --- MongoDb 数据库介绍、安装、使用

    1.数据库和文件的主要区别 . 数据库有数据库表.行和列的概念,让我们存储操作数据更方便 . 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功能 ...

  3. MongoDB学习笔记(一) MongoDB介绍及安装(摘)

    MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++开发.Mongo的官方网 ...

  4. Core Java 学习笔记——1.术语/环境配置/Eclipse汉化字体快捷键/API文档

    今天起开始学习Java,学习用书为Core Java.之前有过C的经验.准备把自己学习这一本书时的各种想法,不易理解的,重要的都记录下来.希望以后回顾起来能温故知新吧.也希望自己能够坚持把自己学习这本 ...

  5. Nodejs 学习笔记 --- 安装与环境配置

    一.安装Node.js步骤 1.下载对应自己系统对应的 Node.js 版本,地址:https://nodejs.org/zh-cn/      2.选安装目录进行安装      3.环境配置    ...

  6. Mongodb学习笔记二(Mongodb基本命令)

    第二章 基本命令 一.Mongodb命令 说明:Mongodb命令是区分大小写的,使用的命名规则是驼峰命名法. 对于database和collection无需主动创建,在插入数据时,如果databas ...

  7. MIT JOS学习笔记01:环境配置、Boot Loader(2016.10.22)

    未经许可谢绝以任何形式对本文内容进行转载! 一.环境配置 关于MIT课程中使用的JOS的配置教程网上已经有很多了,在这里就不做介绍,个人使用的是Ubuntu 16.04 + qemu.另注,本文章中贴 ...

  8. MongoDB学习笔记一(MongoDB介绍 + 基本指令 + 查询语句)

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩 ...

  9. MongoDB学习笔记——数据库安装及配置

    MongoDB数据库安装 MongoDB官方下载地址:https://www.mongodb.com/download-center 首先需要根据Windows版本选择正确的MongoDB版本进行安装 ...

随机推荐

  1. 使用setTimeout模拟setInterval效果

    由于现在部分浏览器基于对系统性能的优化,在使用setInterval的时候,在页面没有获得关注的状态,浏览器可以会自动将setInterval终端,等到该页面重新获得关注时再开启.这样就会使得一些基于 ...

  2. iOS AutoLayout的用法

    添加约束 代码实现Autolayout的步骤 利用NSLayoutConstraint类创建具体的约束对象 添加约束对象到相应的view上 - (void)addConstraint:(NSLayou ...

  3. HotApp小程序统计云后台 免费的Https云后台服务器,方便学习小程序

    小程序学习有些地方需要后台,比如需要存储数据到服务器,比如微信登录. hotapp有免费的小程序云后台 包含基本的 新增,查询,修改,删除 操作,方便于学习,而且不需要微信appid 也可使用. 小程 ...

  4. IOS开发基础知识--碎片31

    1:UITableViewCell drawInRect 在iOS7中失败 解决办法,把Cell里的布局移到新建的View里面,在View里面实现DrawInRect,然后在Cell里面加载View, ...

  5. JVM之SerialOld收集器

    Serial收集器的老年代版本 单线程收集器 标记-整理算法 stop the world Client模式下的虚拟机使用 Server模式下,搭配Parallel Scavenge使用及CMS发生C ...

  6. $.parseJson 在 firefox 下返回 null 的问题

    最近调查一个浏览器兼容性问题,在 IE, chrome下都运行正常,但是在 firefox 下运行时: $.parseJson(xxx) 返回 null,所以导致了 无法正常运行,调查的结果是因为 返 ...

  7. centos yum update kernel

    1.查看当前kernel版本 uname -r 2.查看已安装版本 rpm -q kernel 3.查看可升级kernel版本 yum list kernel 4.升级kernel版本 yum upd ...

  8. spark standalone ha spark submit

    when you build a spark standalone ha cluster, when you submit your app,  you should send it to the l ...

  9. Apache2.4部署django出现403 Forbidden错误解决办法

    前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...

  10. python 数据处理学习pandas之DataFrame

    请原谅没有一次写完,本文是自己学习过程中的记录,完善pandas的学习知识,对于现有网上资料的缺少和利用python进行数据分析这本书部分知识的过时,只好以记录的形势来写这篇文章.最如果后续工作定下来 ...