码迷,mamicode.com
首页 > 数据库 > 详细

mongoDB

时间:2016-03-23 16:56:38      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

MongoDB

NoSQL:(非关系型),MonogDB就是一种非关系型的数据库。mongodb也是nosql类的产品。

member,redis等等都属于nosql类的产品。

 

Mongodb面向文档的数据:一条记录叫做:文档。把多个文档放到一起叫做一个:集合【MYSQL中的表】。

 

MongodbMYSQL最大的区别?

Mongodb是无模式的(无须建表)

MongoDB使用javascript语言操作。mysql使用的是SQL

MongoDBjson形式保存一条记录,读、写方面性能非常快。相对数据来说:事务、视图、存储过程都没有。

 

MongoDB的扩展非常容易(用MONGODB实现分表、分库、读写分离、分布式存储非常容易,配置一下即可)

MYSQL的扩展也可以做到,但性能和维护成本非常高。

 

所以mongodb非常适合存储:数据结构简单、数据量非常大、高并发读写的操作。

MONGODB在保存关系比较复杂的数据时不太容易,不支持关系和连表操作相对数据中一对多和多对多的关系,不如MYSQL方便。

 

member表  friend

MongDB:member 

{username:”tom”,friends:[{username:”Jack”,”age”:10},{“username:”tom1”,”age”:20}]}

{username:”java”,friends:[{username:”Jack”,”age”:10},{“username:”tom1”,”age”:20}]}

冗余非常严重

 

非常适合:数据量非常大、数据结构单一的数据存储(比如,投票、日志等等)。

MongoDB为什么快?:不解析sql语句不连表,因此很多情况下把mongoDB用作缓存,把数据存到硬盘。

 

实际操作:

  1. 安装mongodb并且启动
  2. 先创建一个目录(用来存放MONGDOB中的数据)和一个文件(mongodb的日志文件)

 

b. 执行mongodb中的mongod.exe命令进行安装:

 

c. 打开服务 窗口查看并启动:net start MongoDB

 

  1. 运行mongo.exe 客户端程序连接到服务器上进行操作

 

扩展:mogodb默认没有开启权限验证机制,如果要开启需要先创建好管理员账号才行。

在客户端就可以执行javasscript代码了:

客户端的使用:

  1. db变量的使用 -》 当前正在使用的数据库
  2. 切换数据库:   use  库名
  3. 查看所有的数据库:  show dbs
  4. 如何查看都有哪些命令:帮助 系统:

a) help 系统级帮助

b) db.help()  数据库级别的帮助

c) db.集合名字.help()         集合级别的帮助

 

例子:向php34数据库中的商品集合中插入一个商品的文档。

 

 

扩展:插入记录时如果记录中没有_id字段,MONGODB会自动添加上一个_id字段,这个字段的类型是ObjectId,值是一个字符串,这个字符串在全球是唯一的。

特点:mongodb执行的每个操作都是瞬间完成的,客户端执行命令时直接把命令发给服务器就接着处理下一个不会等待服务器返回结果。所以客户端也不知道这次操作有没有成功,如果要知道结果需要再执行另一个命令:

 

特点:同一个集合中可以插入完全不相干的数据:

 

官方不推荐这样保存数据,最好还是把数据存到相应的集合中不要混着存,会影响性能。

 

 

例子:查询商品集合 所有的商品

 

修改记录方法一,使用save只能修改一条记录

 

修改方法二使用update方法可以修改多条记录

 

修改年龄小于10

 

mongoDB

标签:

原文地址:http://www.cnblogs.com/xueleixi/p/5311473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!