现在的位置: 首页 > 综合 > 正文

初识 MongoDB

2013年12月12日 ⁄ 综合 ⁄ 共 2029字 ⁄ 字号 评论关闭

前段时间接触了Mongodb,一种面向文档型数据库,把自己总结的分享一下。

1 Mongodb的部署实施和注意要点:

1.1 Mongodb简介:

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能据存储解决方案。 它的特点是高性能、易部署、易使用,存储数据非常方便。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017

1.2 Mongodb下载与安装:

下载地址:http://www.mongodb.org/downloads;

安装:安装非常简单,解压就行,我将文档放到C:\mongodb-win32盘目录下, 为了方面命令行的输入,将C:\mongodb-win32\mongodb-win32\bin加入到系统环境变量的系统中。

1.3 Mongodb部署:

第一步启动Mongodb服务,指定数据库存放位置

         C:\mongodb-win32\mongodb-win32\bin>mongod–-dbpath “C:\mymongodb”

         出现一下画面,表明Mongodb服务已开启,默认端口为27017。

         在地址栏输入http://localhost:28017即可看到Mongodb服务已开启。

第二步执行Mongo shell

C:\mongodb-win32\mongodb-win32\bin>mongo

1.4 注意要点:

推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。因为 MongoDB 在内部实现上是通过内存映射的方式来提高性能的,所以在 32 位机器上其内存地址本身就限制了数据容量。

2 Mongodb的机制特点:

2.1 Mongodb无模式优点:

1、存储形式,相较于传统的关系型数据库,它可以使用一个表存储原来需要使用多表关联才能存储的数据库。

2、存储动态性,相较于传统的数据库当要增加一个属性值的时候要对表大动,mongodb的面向文档的形式可以使其属性值轻意的增加和删除。而原来的关系型数据库要实现这个需要有很多的属性表来支持。

2.2 Mongodb存储特点

1、Mongodb有两种数据写入模式,一种模式就是只管向数据库服务器提交数据不等数据库服务器的回应。这个是数据库默认模式。另外一种是安全模式,就是写入的同时还要与服务器同步,当数据的安全性要求高的时候适合用安全模式。

2.3 Mongodb的日志功能。

默认情况下Mongodb是开启日志功能的。每一个数据库操作都会先记录日志,所以当关机重启动服务器的时候数据库服务器能够通过日志文件恢复之前未完成的操作。

2.4 Mongodb的索引

Mongodb支持关系型数据库的所有索引模式(升序,降序,唯一,复合,地理空间索引),同时也支持二级索引(通过B-tree实现)。

2.5 Mongodb的可扩展性

Mongodb采用了低成本的横向扩展模式,相对于传统的单结点纵向扩展,可以节约成功,而且有更好的可靠性,更好的数据处理性能。


 

3  mongodb增删查改例子:

3.1 Insert操作:使用insert操作向数据库中添加数据。

                   /* 使用 sunset数据库 */

  use  sunset  

                   db.sunset.insert({"name":"sunshine","address":"yuexiu"})/*向数据库中添加一条记录*/

                   db.sunset.find( )    

           

3.2  find操作 : 查找出数据库中的数据

                   db.sunset.find()  /*查找当前数据库集合中的数据*/

           

3.3  update操作 : 更新数据项

                   db.sunset.insert({"name":"sunshine","address":"yuexiu"})

  db.sunset.update({“name”:”sunshine”},{“name”:”sunshine”,”address“:“linhexi”})

 /* update方法的第一个参数为“查找的条件”,第二个参数为“更新的值 */

          db.sunset.find()

           

3.4   remove操作:移除数据项

                   db.sunset.insert({"name":"sunshine","address":"yuexiu"})

                   /* remove中如果不带参数将删除所有数据*/

  db.sunset.remove()

  db.sunset.find()

  db.sunset.count()

      

抱歉!评论已关闭.