mongodb学习总结

上传人:桔**** 文档编号:468958969 上传时间:2023-04-30 格式:DOC 页数:44 大小:993.54KB
返回 下载 相关 举报
mongodb学习总结_第1页
第1页 / 共44页
mongodb学习总结_第2页
第2页 / 共44页
mongodb学习总结_第3页
第3页 / 共44页
mongodb学习总结_第4页
第4页 / 共44页
mongodb学习总结_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《mongodb学习总结》由会员分享,可在线阅读,更多相关《mongodb学习总结(44页珍藏版)》请在金锄头文库上搜索。

1、MongoDB学习文档一、 NoSQL简介1、什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。2、NoSQL的优点/缺点优点:高可扩展性。分布式计算。低成本。架构的灵活性,半结构化数据。没有复杂的关系。缺点:没有标准化。有限的查询功能(到目前为止)。最终一致是不直观的程序。3、NoSQL 数据库分类类型部分代表特点列存储Hb

2、aseCassandraHypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储MongoDBCouchDB文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储Tokyo Cabinet / TyrantBerkeley DBMemcacheDBRedis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储Neo4JFlockDB图形

3、关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库Berkeley DB XMLBaseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。二、 MongoDB简介 1、什么是MongoDB?MongoDB 是由C+语言编写的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB自带的JavaScript Shell,可在shell中使用sh

4、ell命令行与MongoDB实例交互。Shell是一个功能完备的JavaScript解释器,可运行任意的JavaScript。2、Mongodb的主要特点:1、 面向集合存储,易存储对象类型的数据2、 支持动态查询3、 支持丰富的类型:支持 dates, regular expressions, code, binary data 等类型。4、 支持索引5、 支持服务器端javascript执行:javaScript是MongoDB的一种通用语言,它可以被用在查询,聚集函数,直接由数据库执行。补充:所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称

5、为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format

6、)。MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。3、MongoDB适合用场景:网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。

7、大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。自然,MongoDB的使用也会有一些限制,例如它不适合:高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数

8、据仓库可能是更合适的选择。需要SQL的问题三、 MongoDB的安装及配置1、MongoDB的安装1、 MongoDB的下载:在MongoDB的官网https:/www.mongodb.org/downloads,根据不同的操作系统下载MongoDB的安装包。备注:32-bit的操作系统,MongoDB支持的最大存储数据为2G。64-bit的则无最大数据限制。推荐安装64-bit。下载完后,解压即可。MongoDB的目录结构如下图所示:2、访问MongoDB数据库MongoDB安装完成后,要访问数据库,必须经过以下两步:1、 启动MongoDB服务。以管理员身份运行命令提示符,在命令提示符下,

9、找到MongoDB安装目录下面的bin目录,运行 “mongod”则启动了MongoDB服务。备注:默认保存数据库的DATABASEPATH为MongoDB安装盘符下面的的datadb路径,所以,自己必须先创建一个这样的文件。此命令提示符窗口一旦关闭,则该服务也随之关闭。2、 访问MongoDB数据。重新打开一个命令提示符窗口,找到安装目录下面的bin目录,运行“mongo”,则默认进入到test文档。3、启动MongoDB时的附加参数 下表为MongoDB启动的可附带的参数说明:参数描述-bind_ip绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP-logpa

10、th定MongoDB日志文件,注意是指定文件不是目录-logappend使用追加的方式写日志-dbpath指定数据库路径-port指定服务端口号,默认端口27017-serviceName指定服务名称-serviceDisplayNam指定服务名称,有多个mongodb服务时执行。-install指定作为一个Windows服务安装。示例 说明:此命令指定了MongoDB的dbpath和logpath。4、将MongoDB添加到windows服务将MongoDB服务器作为Windows服务运行,启动后,MongoDB服务直接运行在后台,避免重复的开启关闭命令。此时请注意,你必须有管理权限才能运行

11、下面的命令。mongod -bind_ip yourIPadress -logpath C:datadbConfmongodb.log -logappend -dbpath C:datadb -port yourPortNumber -serviceName YourServiceName -serviceDisplayName YourServiceName -install示例:开启MongoDB服务:关闭MongoDB服务:删除MongoDB服务:四、MongoDB中的基本概念1、数据库一个mongodb中可以建立多个数据库。MongoDB的默认数据库为db,该数据库存储在data目录中

12、。命名规则:不能是空字符串(“”);数据库名区分大小写;数据库名最多为64字节,不能含有/,。,*,|,$,空格,空字符等。数据库最终会变成文件系统里面的文件,数据库名就是相应的文件名。有一些数据库名是保留的,可以直接访问,这些数据库有:admin(相当于“root”数据库),local(此数据库不可复制,且一台服务器上的所有本地集合都可以存储在这个数据库中),config(用户存储分片信息)。查看MongoDB中所有的数据库: show dbs;查看当前使用的数据库: db使用“use databasename”转换到特定的数据库 : use admin创建数据库:Use mydb: 创建或

13、者转到一个数据库,如果什么都不操作离开的话 这个库就会被系统自动删除。删除数据库: use testMongo db.dropDatabase();2、文档文档是mongodb中的最核心的概念,是其核心单元。我们可以将文档类比成关系型数据库中的每一行数据。多个键及其关联的值有序的放置在一起就是文档。例如,在javascript中,文档被表示为对象:“greeting”:“hello world”,这个文档只有一个键“greeting”,期对应的值为“hello world”,这是一个简单的文档对象,但大多数情况下会比这个复杂的多,可能会包含多个键/值,例如“greeting”:“hello w

14、orld”,“foo”:3。文档中的键/值对是有顺序的。MongoDB严格区分数据类型和大小写。MongoDB的键是字符串,而且键不能重复,键不能含有空字符。同时“.”和“$”为保留字符,一般情况下不推荐使用。在mongodb中使用一种类json的bson存储数据。bson数据可以理解为在json的基础上添加了一些json中没有的数据类型。show3、集合集合(collection)就是一组文档的组合。如果将文档类比成数据库中的行,那么集合就可以类比成数据库的表。在mongodb中的集合是无模式的,也就是说集合中存储的文档的结构可以是不同的,比如下面的两个文档可以同时存入到一个集合中:当第一个

15、文档插入时,集合就会被创建。集合命名规则:集合名不能是空字符串(“”);集合名不能包含空字符(0);集合名不能以“system.”开头,system为系统集合保留的前缀;用户创建的集合名中不能包含“$”,因为某些系统生成的集合中包含$;子集合:组织集合的一种惯例是用“.”分隔不同命名空间的子集合,例如,一个具有博客功能的应用可能包含两个集合,分别是blog.posts和blog.auths,这是为了使组织更加清晰。这里的blog(这个集合甚至不需要存在)跟他的子集合没有任何关系。在MongoDB中,使用子集合来组织数据非常高效,值得推荐。把数据库名添加到集合名前,得到集合的完全限定名,即命名空间(namespace),如果使用CMS数据库中的blog.posts集合,这个集合的命名空间就是CMS.blog.posts。命名空间的长度不超过121字节。显示当前数据库中所有的集合: show collections;删除某个集合:d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号