17
NoSQL - MongoDB By 乐乐乐 乐乐乐 乐乐乐 乐乐乐 乐乐

NoSQL - MongoDB

Embed Size (px)

DESCRIPTION

NoSQL - MongoDB. By 乐志炜 陈润泽 曹 璟 毅 何 竺珈 庞涤. What is NoSQL. NoSQL V.S. 关系型数据库 随着 互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。. What is NoSQL. Not Only SQL. Why NoSQL. 数据库并发负载高 海量数据存储和访问 数据库数据越来越大 事务管理的负担 - PowerPoint PPT Presentation

Citation preview

Page 1: NoSQL  -  MongoDB

NoSQL - MongoDB

By 乐志炜 陈润泽 曹璟毅 何竺珈 庞涤

Page 2: NoSQL  -  MongoDB

What is NoSQL

NoSQL V.S. 关系型数据库

随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

Page 3: NoSQL  -  MongoDB

What is NoSQL

Not Only SQL

Page 4: NoSQL  -  MongoDB

Why NoSQL

数据库并发负载高 海量数据存储和访问 数据库数据越来越大 事务管理的负担 关系型数据库读 / 写实时性的忽略 多表关联查询被弱化

Page 5: NoSQL  -  MongoDB

Why NoSQL

去掉关系型特性 非常好的读 / 写性能 不需要提前为要存储的数据建立字段 高可用性

Page 6: NoSQL  -  MongoDB

NoSQL 缺陷

但是一些人承认,没有正式的官方支持,万一出了差错会是可怕的,至少很多管理人员是这样看。

“ 我们确实需要做一些说服工作,但基本在他们看到我们的第一个原型运行良好之后,我们就能够说服他们,这是条正确的道路。”

此外, NoSQL 并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验。

Page 7: NoSQL  -  MongoDB

What is MongoDB

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

最热门的 NoSQL 产品,之一 BSON (Binary Serialized dOcument Notation)

{"hello“ : "world"}

Page 8: NoSQL  -  MongoDB

What is MongoDB

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 JSON 的 BJSON格式,因此可以存储比较复杂的数据类型。

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

Page 9: NoSQL  -  MongoDB

What is MongoDB

文档(类似于“行”){“age” : 8}

{“age” : “8”}

{“age” : 8}

{“Age” : 8}

{“name” : “zhangsan”, “name” : “lisi”}

集合(类似“表”)一组文档。无模式——文档可以是各种各样的

Page 10: NoSQL  -  MongoDB

MongoDB Database

多个文档组成集合,多个集合组成数据库

JavaScript shell

> x = 200

200

> x / 5;

40

Page 11: NoSQL  -  MongoDB

MongoDB Database

JavaScript shell

> function factorial (n) {

if (n <= 1) return 1;

return n * factorial(n - 1);

}

> factorial (5)

120

Page 12: NoSQL  -  MongoDB

MongoDB Database

JavaScript shell

> use mydb

switched to mydb

> db

mydb

Page 13: NoSQL  -  MongoDB

MongoDB Database

创建> post = {“title” : “My Blog Post”,

“content” : “Here’s my blog post. ”,

“date” : new Date() }

{

“title” : “My Blog Post”,

“content” : “Here’s my blog post. ”,

“date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)”

}

> db.blog.insert(post)

Page 14: NoSQL  -  MongoDB

MongoDB Database

读取> db.blog.findOne()

{

“_id” : ObjectId(“4b23c3ca7525f35f94b60a2d”)

“title” : “My Blog Post”,

“content” : “Here’s my blog post. ”,

“date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)”

}

Page 15: NoSQL  -  MongoDB

MongoDB Database

更新> post.comments = []

[ ]

>db.blog.update({title : “My Blog Post”}, post)

> db.blog.find()

{

“_id” : ObjectId(“4b23c3ca7525f35f94b60a2d”)

“title” : “My Blog Post”,

“content” : “Here’s my blog post. ”,

“date” : “Sat Dec 12 2009 11:23:21 GMT-0500 (EST)”

“comments” : [ ]

}

Page 16: NoSQL  -  MongoDB

MongoDB Database

删除> db.blog.remove({title : “My Blog Post”})

集合现在又是空的了

Page 17: NoSQL  -  MongoDB

Thank You!