`
zc985552943
  • 浏览: 287134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11471
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:26632
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:15611
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:26665
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13379
社区版块
存档分类
最新评论

02_mongoDB_入门篇

阅读更多

入门篇

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

在这里我们有必要先简单介绍一下非关系型数据库(NoSQL)

1.什么是NoSQL

 NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2.关系型数据库 PK 非关系型数据库

RDBMS  NoSQL 
高度组织化结构化数据  代表着不仅仅是SQL
结构化查询语言(SQL)  没有声明性查询语言
数据和关系都存储在单独的表中。  没有预定义的模式
数据操纵语言,数据定义语言  键 - 值对存储,列存储,文档存储,图形数据库
严格的一致性 最终一致性,而非ACID属性
基础事务 非结构化和不可预知的数据
  CAP定理 
  高性能,高可用性和可伸缩性

3.NoSQL分类

 

4.CAP原则

在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer's theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency) (所有节点在同一时间具有相同的数据)
  • 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)


CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。


 5.mongodb数据结构

MongoDB的基础单元——文档

文档是MongoDB的核心概念。多个键值对有序的放置在一起便是文档

{"course1":"MongoDB","course2":"hadoop"}

 说明:文档是有序的,键是区分大小写的

集合

集合就是一组文档。

集合是无模式的,即:一个集合中的文档可以是各式各样的例如:

{"course1":"hadoop","course2":"hive"}
{"studentName":"小红"}

 数据库

MongoDB中多个集合组成数据库。一个MongoDB实例可以承载多个数据库,它们之间可视为完全独立的。每个数据库有自己的权限控制

 

 

6.关系型数据库与MongoDB逻辑结构对比


7.测试MongoDB

> show dbs   //显示数据库信息
local   (empty)
> db  //查看当前链接到那个数据库
test
> user test  //使用test数据库
Fri Mar 28 10:20:14 SyntaxError: missing ; before statement (shell):1
> use test
switched to db test
> post = {"title":"love","content":"I love you"}  //定义文档
{ "title" : "love", "content" : "I love you" }
> db
test
> db.test.blog.insert(post)  //将文档插入到集合中
> db.test.blog.find()  //查询集合
{ "_id" : ObjectId("5334dd149b7a445ea2166559"), "title" : "love", "content" : "I
 love you" }
> post = {"job":"java","city":"wuhan"}
{ "job" : "java", "city" : "wuhan" }
> db.test.blog.insert(post)
> db.test.blog.find()
{ "_id" : ObjectId("5334dd149b7a445ea2166559"), "title" : "love", "content" : "I
 love you" }
{ "_id" : ObjectId("5334dd669b7a445ea216655a"), "job" : "java", "city" : "wuhan"
 }
>

 8.MongoDB中的数据类型

 null

{"x":null}

 

布尔

{"x":true}

 

32位整数

64位整数

64位浮点数

字符串

{"x":"hi word"}

 

对象id

日期

{"x":new Date()}

 

正则表达式

{"x":/foobar/i}

 

代码

{"x":function(){//......}}

 

二进制数据

可以由任意字节的串组成

最大值

最小值

未定义

{"x":undefined}

 

数组

{"x":["a","b","c"]}

 

内嵌文档

{"x":{"foo":"bar"}}

9._id和ObjectId

 Mongodb中存储的文档必须有一个“_id”键。这个键的值可以是任何类型的,默认是ObjectId对象。在集合中,每个文档都有唯一的“_id”,来确保集合里面每个文档都能被唯一标示。

一个BSON ObjectID是12字节的值,包含了4字节的时间戳(纪元以来的秒数),3字节机器id,2字节进程id,和3字节计数值。注意不同于BSON中的其他字段,时间戳和计数值字段必须存储为big endian。这是由于会对它们按字节比较,我们希望大多数情况下保证是升序。它的格式:

 

 

 

  • 大小: 89.1 KB
  • 大小: 27.2 KB
  • 大小: 20.6 KB
  • 大小: 17.8 KB
  • 大小: 4.9 KB
分享到:
评论
1 楼 BigBird2012 2014-08-19  
[b]
[flash=200,200][url][img][list]
[*]
引用
[/list][/img][/url][/flash]
[/b]

相关推荐

    MONGODB学习总结入门篇.pdf

    MONGODB学习总结入门篇.pdf

    MONGODB学习总结入门篇

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    mongodb入门篇

    7.2.2. 数据写入 7.2.2.1. 插入普通json格式的文档数据 1. 查看当前库的所有表>show collections 2. db.collection.insert({x:1}) 7.2.2.2....1. 创建文档 >document = {x:1,y:2,z:3} ...>db.collection.insert...

    MongoDB入门篇1

    1.1 数据 1.1.1 什么是数据 1.1.2 什么是数据库管理系统 1.1.3 常见数据库管理系统 1.2.2 NoSQL数据库四大家族 1.3.3 关系型

    前端迈向全栈入门篇。基于 Node.js + Express + ejs+ MongoDB

    前端迈向全栈入门篇。基于 Node.js + Express + ejs+ MongoDB

    MongoDB使用入门

    01 MongoDB的安装与基本操作.docx; 02 MongoDB数据导入导出备份恢复篇.docx 03 .......

    详解MongoDB for C#基础入门

    本篇文章主要介绍了MongoDB for C#基础入门,具体介绍了c#中关于对MongoDB的连接,插入,查询等,有需要的可以了解一下。

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发...

    教大家8天学通MongoDB——第一天 基础入门篇

    MongoDB是目前非常流行的一种非关系型数据库(NoSQL),因其操作简单、完全免费、源码公开等特点,受到了IT从业人员的青睐,并被广泛...本文教大家8天学通MongoDB——第一天 基础入门篇,感兴趣的朋友一起来了解了解吧

    MongoRedis的源代码:《左手MongoDB,右手Redis——从入门到商业实战》

    《左手MongoDB,右手Redis——从入门到商业实战》背后的故事。 这篇文章没有代码,请放心阅读。 一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为建造环境浪费时间而悔恨,也不会因为浪费而无法这样,...

    MongoDB基础【概念】入门

    相信看了前两篇博客《最详细的Windows平台安装MongoDB教程》和《MongoDB可视化工具Robo 3T基础使用》之后,很多初学者对于MongoDB的使用也是比较地好奇。本篇博客,博主将正式为大家介绍MongoDB! 文章目录什么是...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发...

    NodeJS中的MongoDB快速入门详细教程

    MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写。这篇文章主要介绍了NodeJS中的MongoDB快速入门详细教程的相关资料,需要的朋友可以参考下

    MongoDB入门教程之细说MongoDB数据库的增删查改操作

    看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似...

    MongoDB入门教程之C#驱动操作实例

    作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便。 官方驱动:...

    MongoDB入门教程之常用的运维技术介绍

    这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面: 1. 安装部署 2. 状态监控 3. 安全认证 4. 备份和恢复, 下面我们就一点一点的讲解。 一:安装部署  我之前的文章...

    MongoDB入门教程之主从复制配置详解

    从这一篇开始我们主要讨论mongodb的部署技术。  我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署, 如果碰到数据库宕机或者被毁灭性破坏...

    nodejs+ mongoDb全套视频

    nodejs 全栈工程师必备,从入门到精通, 基础篇,进阶篇,高级篇,项目实战,视频大约30个G左右

    MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)

    主要介绍了MongoDB入门教程,包含安装、常用命令、相关概念、使用技巧、常见操作等,是一篇比较好的入门文章,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics