一、 关于mongodb
- 两种非关系数据库
- Redis:满足极高读写性能的Key-Value数据库
键值式储存,可以通过键快速查询到值。
内存数据库,类似于mencached。性能出色。容量低,不具扩展性。
- Mongodb:满足海量存储需求和访问页面的面向文档的数据库
海量数据高效访问。并发读写效率不是很出色。
分布式储存系统GridFS。
- MongDB的特点
面向集合(json)、模式自由、文档型、动态查询、存储、碎片。
- MongDB的应用
网站数据、缓存、大尺寸低价值的数据、扩展、json数据的存储。
二、 基础知识
- 结构
- 数据逻辑结构
文档、集合、数据库。
- 数据存储结构
用0填充的预分配空间。
表和索引对应的命名空间。
- 日志
系统日志、journal日志oplog日志、慢日志
参数-logappend为追加,journal日志属于几种提交,oplog记录主服务器的操作,慢日志是记录超时的操作:--profile=1 –slowms=5
- 数据类型
Number、date、array、embedded document。
- 启动
- 可用配置文件的启动方式、守护进程。
- 停止
- Ctrl+C、shutdownServer()、kill pid。
- 操作数据库
- 连接:./mongo
- 插入记录
1)db.collections.save();可创建对象,再在()里面填写对象名。
2)for(var i=1;i<10;i++) db.collections.save(x:i)来循环插入。
3)save和insert的区别就是当id_key重复,用save可直接覆盖当前数据,用insert不能覆盖,反而有提醒。
- 查询记录
1)var a= db.collections.find(); while (a.hasNext()) printjson(a.next()); //hasNext()是检测是否还有数据,next()是读取。
2)db.collections.find().forEach(printjson);//使用JavaScript的输出游标特性。
- 条件查询
FindOne()、limit();
- 删除记录
db.collections.remove({name:”mongo”);//还可使用find查找的条件删除。