|
NoSql:not only sql 非关系型数据库
面向对象式的
新浪微博:redis
google :bigtable
amazon:simpledb
淘宝:tair
视觉网站:mongodb
优酷运营数据分析:mongodb
飞信空间:handlersocket
豆瓣社区:beansdb
优缺点:
优点:
简单的扩展
快速的读写
低廉的成本
灵活的数据模型
缺点:
只是在局部展现出某些优势
不提供对sql的支持
支持的特性不够丰富
现有的产品不够成熟
相对成熟的产品 mongodb,redis
是一个面向集合的,模式自由的文档型数据库
面向集合:
文件存储格式:bson(二进制的json)
使用场景:
持久化的缓存层
高效的实时性
用于对象以及json数据的存储
高伸缩性的场景
大尺寸,低价值的数据存储
不适用:
高度事务
传统的商业智能应用
复杂的多表查询
安装简单:
不需要编译
启动:
建立数据库目录:data
日志文件:dblogs
E:\mongodb\bin\mongod.exe --dbpath=e:\mongodb\data --logpath=e:\mongodb\dblogs --install
默认进入:test库
关闭:kill -all 进程号
pkill 进程名
不要用kill -9 否则会产生锁文件
命令:
show dbs
exit
db 当前数据库
show tables /show collections 当前数据库的集合
对比:
mysql 数据库(database) 表(table) 记录(rows)
mongodb 数据库(database) 集合(collection) 文档对象(document)
隐式创建数据库和表:
db.c1.insert({name:"songjiankang"});
db.c1.find()
show users 查看所有用户
db.dropdatabase()
db.c1.remove(); //删除所有
db.c1.update({name:"user1"},{name:"user00"})
objectid:时间+机器号+进程号+编号 即使把多个集合的数据完全合并都不会冲突
数据类型:
null {"one":null}
布尔 {"one":true}
32位整数
64位的整数
64位的浮点数
字符串
符号
objectId类型 对象id是文档中唯一的12位的id
0|1|2|3|4|5|6|7|8|9|10|11
时间戳 机器 pid 计数器
日期 {"one":newDate()}
正则
代码 文档中可以包含js代码{"one":function(){}}
数组:值可以为数组 还可以嵌套{"one":["a",["b","c"]]}
内嵌文档 文档可以包含别的文档,也可以作为值嵌入到父文档中
{"x":{"name":"jian"}}
insert save(replace)
js 动态插入
for(i=0;iextension_dir = "/www/wdlinux/nginx_php-5.2.17/lib/php/extensions/no-debug-zts-20060613"
2>extension=mongo.so
以授权方式连接mongodb:"mongodb://root:123456@localhost:27017/admin"
$conn = new Mongo("mongodb://root:123456@localhost:27017/admin");
$db = $conn->test;
$c1 = $db->c1;
$arr = array();
$res = $c1->find($arr);
foreach($res as $val){
print_r($val);
}
|
|
|
|
|
|
|