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. jQuery手机端触摸卡片切换效果

    效果:http://hovertree.com/code/run/jquery/a1gr3gm9.html 可以用手机查看效果. 代码如下: <!doctype html> <htm ...

  2. 30行代码搞定WCF并发性能测试

    [以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main()         {               List< ...

  3. Android Studio关于SVN的相关配置及从SVN检出项目

    一.安装配置: 如图,安装时必须自定义选择 command line 否则不会安装的 安装完成后,打开 IDE 的 setting 配置面板: 如上图路径 Version Control 下的 Sub ...

  4. ViewPager+GridView实现横向滑动 仿大众点评

    先看演示效果: 1  ViewPager类提供了多界面切换的新效果. 新效果有如下特征: [1] 当前显示一组界面中的其中一个界面. [2] 当用户通过左右滑动界面时,当前的屏幕显示当前界面和下一个界 ...

  5. shell脚步传参

    linux系统除了提供位置参数还提供内置参数,内置参数如下: $# ----传递给程序的总的参数数目 $? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非 ...

  6. svn的使用(转载)

    这里只介绍使用CornerStone来使用SVN. CornerStone是Mac OS X系统下非常好用的一款svn工具,当然还有Versions也是可以用的,但是使用起来不如CornerStone ...

  7. Feathers组件的宽度或高度属性,为什么我得到的值是0

    Feathers组件使用一个失效系统延迟一会儿繁重的重绘,这样你可以在一个时间内改变多个属性.如果你还没有明确地设置宽度和高度,他们会自动 调整自身到一套“理想”的尺度.然而,这并不会发生,直到他们验 ...

  8. [css]我要用css画幅画(九) - Apple Logo

    接着之前的[css]我要用css画幅画(八) - Hello Kitty,这次画的是苹果公司的logo 这次打算将分析和实现步骤尽量详细的说一说. 其实之前的也打算详细讲分析和设计过程,不过之前的图比 ...

  9. 利用 spring bean 的属性 init-method 解决因为数据库连接没有初始化而导致首次点击页面超慢的问题

    问题的描述: 一个项目,涉及到了 两个数据源,分别使用的是 两个不同的 数据库连接池,其中一个是 poxool 连接池,问题在于,spring在启动时,只初始化其中的一个 数据库连接池中的数据库连接, ...

  10. W3School-CSS 分类 (Classification) 实例

    CSS 分类 (Classification) 实例 CSS 实例 CSS 背景实例 CSS 文本实例 CSS 字体(font)实例 CSS 边框(border)实例 CSS 外边距 (margin) ...