lzf79 发表于 2018-10-27 09:57:00

mongoDB(上)

  1.什么是NoSQL
  Not 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]
查看完整版本: mongoDB(上)