mongoDB(上)
1.什么是NoSQLNot Only SQL,以key-value形式存储,json形式的key-value,分布式,开源的,水平可扩展。
NoSQL->新浪微博:Redis
Google:Bigtable
Amazon:SimpleDB
淘宝数据平台:Tair
视觉中国网站:MongoDB
优酷运营数据分析:MongoDB
飞信空间:HandleSocket
豆瓣社区:BeansDB
2.MongoDB:介于关系型数据库和非关系型数据库之间的产品,面向集合的,文档型数据库。
主要特性:自动支持云计算,面向集合,支持动态查询,支持完全索引,支持复制和故障恢复,使用高效的二进制数据存储,包括大型对象,自动处理碎片,支持云计算层次的扩展。,文件存储格式为BSON。(一种JSON的扩展)
适用的场景:持久化的缓冲层,高效的实时性,用于对象及JSON数据的存储,
不适用的场景:要求高度的事务性,复杂多表查询,传统的商业智能应用。
3.MongDB的安装
安装:Http://www.mongodb.org
http://fastdl.mongodb.org/linux/mongodb-linux-1686-1.8.0.tgz
解压压缩包上传到linux中,放到/usr/local/mongdb
mv mongdb/usr/local/mongodb
创建数据库文件夹和日志文件:安到/usr/local下
创建一个data目录:mkdir data
touch dblogs
mkdir/usr/local/mongodb/data
touch/usr/local/mongodb/dblogs
日志文件
将mongodb启动项目加入rc.local保证mongodb在服务器开机时启动
4.
启动(./mongod是启动程序):./mongod --dbpath /user/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork
5.查看进程列表:
pstree -p grep mongod
vi /etc/rc.local
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/--logpath=/usr/local/mongdb/dblogs--fork'>>/etc/rc.local
6.关闭mongdb :
1.pkill mongod
2.killall mongod
ps -ef|grep mongod
不用kill -9 2596,若用kill -9 则再用ps -ef |grep mongod
起不来mongo了,此时删掉mongod的锁: cd data/
rm -rf mongod.lock
cd bin/
./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs--fork
!ps
(启动命令常用参数选项说明:
--dbpath:指定数据库目录
--port:指定数据库的端口(27017)
--bind_ip:绑定ip
--directorypcrdb:为每个db创建一个独立子目录。
--logpath:指定日志存放目录
--logappend:指定日志的生成方式
--keyFile:集群模式的关键标识
--maxConns:最大并发连接数
--journal:启用日志
--pidfilepath:指定进程文件路径,若不指定,不产生进程文件
--fork:以后台Daemon形式运行服务
--keyFile集群模式的关键标示
--notablescan不允许进行表扫描
--noprealloc关闭数据文件的预分配功能
mongod --help查询帮助)
./mongo:默认有一个空数据库local
mongodb创建数据库和表:是隐式创建
kill -2杀死进程(别用kill -9)
7.MongoDB的插入insert
show tables;
system.indexes
db.c1.find();
db.c1.insert({name:"user2"});
db.c1.find();
db.c1.remove();
db.c1.update({name:"user3"},{$set:{name:"user30"}});
db.c1.find();
db.c1.update({name:'user3'},{$set:{name:'user300'}});
db.c1.update({name:'user30'},{$set:{sex:"nan"}});
db.c1.find();
db.user.update({"id":1},{"name":"nosql"});
db.c1.insert({name:"user3",age:30});
db.c1.remove();
db.users.remove({"_id":1,"name":"nosql"}{"_id":ObjectId("4eb2a"),"age":24})
定义一个函数:让它实现id自增
function counter(name){
var ret=db.counters.findAndModify({query:{_id:name},update:{$inc:{next:1}},"":true,upset:true});
}
db.users.insert({_id:counter("users"),name:"id2"});
db.users.insert({_id:counter("users"),name:"id2"});
8.增删改查:
固定集合:Capped Collection
GridFS(大文件上传下载,只有MongoDB出现)
Mongodb是面向文档存储的数据库,文档结构形式叫BSON(类似JSON)
1.(1)insert
(2)save
(区别若_ID相同则更新,而insert则插入失败)
db.c1.find();
db.c1.insert({_id:1,name:"user5"});
db.c1.save({_id:1,name:"user6"});
db.c1.remove();
db.c1.insert({name:"user1",post:{tit:1,cnt:111}});
db.c1.find();
db.c1.insert({name:"user2",post:{1,2,3,4,5}});
2.删除
db.c1.remove({});
db.c1.remove();
上两条等同
db.c1.insert({name:"user1"});
db.c1.insert({name:"user2"});
db.c1.insert({name:"user3"});
db.c1.remove({name:"user1"});
3.查询
1).查询所有和带条件的
db.c1.insert(name:"user1");
for(i=1;i
页:
[1]