MongoDB的安装(在window和Ubuntu下)

MongoDB的优缺点简介

  说到mongoDB的优缺点,我们先看看NoSQL和关系型数据库的区别:

  • 关系数据库管理系统首先是基于事务的,遵循ACID规则。而NoSQL系统并不完全支持ACID,而且许多NoSQL系统中并没有事务的概念。
  • 关系数据库管理系统中的数据位于固定的表和字段。而NoSQL系统并不依赖固定表和字段。
  • NoSQL系统中并不使用SQL查询。
  • 通过主键对数据进行分解在关系数据库管理系统中不是强制的。而NoSQL系统则是通过主键来访问数据的。
  NoSQL系统可以分为主要的三大类:基于文档,基于键/值以及基于图形,每种类型的NoSQL系统对于数据一致性和数据访问策略都是有所差异的。MongoDB将自身定位为一个开源的、易于扩展的文档型数据库。每条记录实际上都是以一个文档存在于MongoDB中。文档以JSON格式,二进制JSON (BSN) 存储在MongoDB中。BSON文档是包含有所存元素有序列表的对象。每条元素都由一个字段名和一个特定类型的值组成。
  MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。mongoDB的功能特性:
  主要功能特性有:

  • 面向集合存储,易存储对象类型的数据
  • 模式自由(不需要定义任何模式(schema)。)
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 易于查询(MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多)
  • 支持复制和故障恢复(主从复制支持,对读写操作引导到各自独立的服务器进行处理,在主服务无法访问的时候运行一个备用服务器作为主服务器,提升NoSQL可用性)
  • 使用高效的二进制数据存储,包括大型对象(如视频等)
  • 自动处理碎片,以支持云计算层次的扩展性(分片支持。跨多服务器对大规模数据进行分片是MongoDB有别于其同类的特性之一。)
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言
  • 文件存储格式为BSON(一种JSON的扩展)
  • 可通过网络访问
        mongoDB的5大缺陷:
  • 1. 哈希对象中key的顺序(在MongoDB中key的顺序非常重要,{ a: 1, b: 2 } 和 { b: 2, a: 1 }是不匹配的。)
  • 2. undefined, null and undefined
  • 3. Soft limits, hard limits and no limits(在MongoDB中零表示无限制。我猜想MongoDB的代码可能将undefined, null, 0等等所有的false值当做无限制对待。      
  • function getItems (N) {  
          if (N < 0) N = -N;  
          if (N > 50 || !N) // check if N is falsy ("no limit")  
                  N = 50;  
          return db.items.find({}).sort({ year: 1 }).limit(N);  
    }
  • 4. 数组的特殊待遇(尽可能的避免数组或者嵌套数组以及其他一对多关系的数据存在于文档之中,并且在需要查询的时候,通常我们倾向于按照一对一关系去查询。)
  • 5. 地理定位操作符$near
        参考自: http://www.searchdatabase.com.cn/showcontent_80606.htm   文章标题:MongoDB语法上的五大缺陷

window下面mongodb的安装

(一)下载地址

       去官网下载 http://www.mongodb.org/downloads

       下载之后解压,我将解压之后文件夹里面的东西移到  E:\MongoDbPackage\  下面

(二)打开mongo服务器端

     打开一个cmd窗口,使用cd命令切换到指定目录 (E:\MongoDbPackage\)运行。运行以后出现如下界面。

     

(三)打开mongo客户端

     

ubuntu下面mongodb的安装

(一)下载地址

  去官网下载 mongodb-linux-x86_64-2.6.3.tgz

(二)解压

  将该文件解压:  tar -xvzf mongodb-linux-x86_64-2.6.3.tgz

(三)运行

  在/usr/lib/创建mongodb文件夹,将mongodb下面的东西拷贝到mongodb文件夹下面,mongodb/bin/下面放置的就是mongoDB的命令。

  运行的时候,切换到该目录下执行

  user@user-xubuntu:/usr/lib/mongodb/bin$sudo  ./mongod  执行的是服务器端的命令

         

  user@user-xubuntu:/usr/lib/mongodb/bin$sudo ./mongo 执行的是客户端的命令

        

(四)mongoDB的命令简介

       1. mongod 是mongodb系统的主守护线程,它处理数据的请求,管理数据访问,执行后台管理操作。常见的选项 --port<port> 默认是27017,--version 版本号。

       2. mongos,  MongoDB提供了auto-sharding 功能。因为其是auto-sharding,即mongodb通过mongos(一个自动分片模块,用于构建一个大规模的可扩展的数据库集群,这个集群可以并入动态增加的机器)自动建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上。 一个mongodb集群包括一些shards(包括一些mongod进程),mongos路由进程,一个或多个config服务器。

       3. mongo是一个互动JavaScript MongoDB shell接口,为系统管理员提供了一个强大的界面以及开发人员测试的方式直接与数据库查询和操作.mongo启动的是mongo的客户端

       4. mongod.exe是构建MongoDB守护进程(即mongod)的Windows平台。mongod.exe的所有功能的mongod在类unix平台和完全兼容其他mongod构建。此外,mongod.exe提供几个选项与Windows平台交互本身

       5. mongos.exe类似于mongod.exe一样,是window平台的的。

       6. mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘。但是存在的问题时使用mongodump产生的备份不一定是数据库的实时快照,如果我们在备份时对数据库进行了写入操作,则备份出来的文件可能不完全和Mongodb实时数据相等。另外在备份时可能会对其它客户端性能产生不利的影响。

       7. mongorestore是Mongodb从备份中恢复数据的工具,它主要用来获取mongodump的输出结果,并将备份的数据插入到运行的Mongodb中。

       8. bsondump BSON的文件转换成人类可读的格式,包括JSON。例如,bsondump有助于阅读mongodump生成的输出文件。

       9. mongooplog 用于从运行的mongod服务中拷贝运行日志到指定的服务器,主要用于增量备份,使用示例:mongooplog --from 

       10. mongoimport用于将JSON,CSV或TSV等文件格式,导入到mongoDB数据库中,使用示例:mongoimport --db users --collection contacts --type csv --file /opt/backups/contacts.csv

       11. mongoexport.exe 用于将mongodb中的数据库,导出为JSON,CSV或TSV的格式。使用示例:mongoexport --host mongodb1.example.net --port 37017 --username user --password pass --collection contacts

       12. mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态. 它的作用像linux中监控linux的vmstat

       13. mongotop, mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。 mongotop提供每个集合的水平的统计数据。默认情况下,mongotop返回值的每一秒。

       14. mongosniff, 这一工具的作用类似于tcpdump(可以用于监控连接到mongodb的TCP/IP连接),不同的是他只监控mongodb相关的包请求,并且是以指定的具有可读性的形式输出。此工具可以帮助你更好的了解MongoDB各种操作的网络请求过程。

       15. mongoperf是一个实用程序来检查MongoDB的独立磁盘I / O性能。用来测试io性能,可以用来做mongo的io压力测试,和sql server的SQLIOSim

       16. mongofiles可以用来在GridFS中上传,下载,列示,查找和删除文件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值