1.基本命令
mongodb启动
help;
db.help();
show tables;
mkdir -p /home/db
mongod –port 11111 –dbpath E:\data\mongodb
> use foobar
> db
> post = {"title":"my blog post","content":"here is my bolg post","date":"new Date"}
> db.blog.insert(post);
> db.blog.find();
> db.blog.findOne();//查找一条数据
> post.comments = []
> db.blog.update({title:"my blog post"},post) //自动显示最多20个匹配的文档
> db.blog.remove({"title":"my blog post"});
2.mapreduce学习
QueryBuilder query = QueryBuilder.start("pin").notEquals(pin)
.and("sku").in(skus)
.and("updateDate").greaterThan(DateUtil.format(beginTime,DateUtil.YYYYMMDD_HHMMSS))
.and("updateDate").lessThanEquals(DateUtil.format(endTime,DateUtil.YYYYMMDD_HHMMSS));
String map = "function(){emit(this.pin,{sku:this.sku,count:1})}";
String reduce = "function(key,vals) { "+
" var array = []; "+
"for(var i in vals ){ "+
" var flag = false; "+
" for(var j in array){ "+
" if(vals[i].sku==array[j]){ "+
" flag=true; "+
" } "+
" } "+
" if(!flag){ "+
" array.push(vals[i].sku); "+
" } "+
" } "+
" return array.length; "+
"} ";
MapReduceOutput mp1 = userOrderClient.getCollection().mapReduce(map, reduce,null, MapReduceCommand.OutputType.INLINE, query.get());
//转为map,排序,截取,保存
Map<String,Integer> result = new HashMap<String,Integer>();
Iterator<DBObject> it= mp1.results().iterator();
while(it.hasNext()){
DBObject obj= it.next();
String str = obj.get("value").toString();
int value =1;
try{
value = Integer.parseInt(str.substring(0, str.length()-2));
}catch(NumberFormatException e){}
result.put(obj.get("_id").toString(), value);
}
3.新建集群库/表
先切到admin库下
库:
db.runCommand({"enablesharding":"UserProfile"})
表:
db.runCommand({shardcollection:'UserProfile.User_Temporary',key:{_id:1},unique:true})
删除库
user xxx
db.runCommand({"dropDatabase": 1});
4.master/slave配置,且设置认证
slave/10.10.242.195
rm -rf /root/mongodb_slave_data
mkdir -p /root/mongodb_slave_data
./mongod --slave --source 10.10.242.196:6688 --port 6689 --dbpath /root/mongodb_slave_data --maxConns 80000 #不加认证
use local
db.addUser('repl','repl');
./mongod --slave --source 10.10.242.196:6688 --port 6689 --dbpath /root/mongodb_slave_data --maxConns 80000 --auth #添加认证
master/10.10.242.196
master/10.10.242.196
rm -rf /root/mongodb_data
mkdir -p /root/mongodb_data
./mongod --master --dbpath /root/mongodb_data --port 6688 --maxConns 80000
use local
db.addUser('repl','repl');
./mongod --master --dbpath /root/mongodb_data --port 6688 --maxConns 80000 -auth
use admin
db.addUser('admin','admin');
为test添加密码
use admin
db.auth('admin','admin');
db.addUser('test','test');
5.MonogoDB Sharding + Replica Set配置集群
195
mkdir -p /usr/MonogoData/shard1_10001
mkdir -p /usr/MonogoData/shard1_10011
./mongod --shardsvr --replSet shard1 --port 10001 --dbpath /usr/MonogoData/shard1_10001/ --logpath /usr/MonogoData/shard1_10001/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongod --shardsvr --replSet shard1 --port 10011 --dbpath /usr/MonogoData/shard1_10011/ --logpath /usr/MonogoData/shard1_10011/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongo --port 10001
use admin
config={_id:'shard1',members:[{_id:0,host:'10.10.249.195:10001'},{_id:1,host:'10.10.249.195:10011'}]}
rs.initiate(config)
rs.status()
196
mkdir -p /usr/MonogoData/shard1_10001
mkdir -p /usr/MonogoData/shard1_10011
./mongod --shardsvr --replSet shard2 --port 10001 --dbpath /usr/MonogoData/shard1_10001/ --logpath /usr/MonogoData/shard1_10001/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongod --shardsvr --replSet shard2 --port 10011 --dbpath /usr/MonogoData/shard1_10011/ --logpath /usr/MonogoData/shard1_10011/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongo --port 10001
use admin
config={_id:'shard2',members:[{_id:0,host:'10.10.249.196:10001'},{_id:1,host:'10.10.249.196:10011'}]}
rs.initiate(config)
rs.status()
197
mkdir -p /usr/MonogoData/shard1_10001
mkdir -p /usr/MonogoData/shard1_10011
./mongod --shardsvr --replSet shard3 --port 10001 --dbpath /usr/MonogoData/shard1_10001/ --logpath /usr/MonogoData/shard1_10001/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongod --shardsvr --replSet shard3 --port 10011 --dbpath /usr/MonogoData/shard1_10011/ --logpath /usr/MonogoData/shard1_10011/log.log --rest --directoryperdb --maxConns 2000 --fork &
./mongo --port 10001
use admin
config={_id:'shard3',members:[{_id:0,host:'10.10.249.196:10001'},{_id:1,host:'10.10.249.196:10011'}]}
rs.initiate(config)
rs.status()
这样,shard就配置好了。
现在开始配置1台Mongodb Config
mkdir -p /usr/MonogoData/Config_20001
./mongod --configsvr --port 20001 --dbpath /usr/MonogoData/Config_20001/ --logpath /usr/MonogoData/Config_20001/log.log --rest --fork &
$ ps aux | grep mongodb | grep -v grep
查看是否mongodb的进程都起来了
下面接着配置Mongs
mkdir -p /usr/MonogoData/master
./mongos --port 40000 --logpath /usr/MonogoData/master/log.log --chunkSize 1 --configdb 10.10.249.195:20001 --fork &
./mongo --port 40000
use admin
db.runCommand({ addshard:'shard1/10.10.249.195:10001,10.10.249.195:10011' })
db.runCommand({ addshard:'shard2/10.10.249.196:10001,10.10.249.196:10011' })
db.runCommand({ addshard:'shard3/10.10.249.197:10001,10.10.249.197:10011' })
db.runCommand({listshards:1})
接下来进行切片
db.runCommand({ enablesharding:'liaoyongdb' }) #指定切片数据库
db.runCommand({shardcollection:'liaoyongdb.test',key:{_id:1}}) #指定切片数据的表
printShardingStatus()
删除索引
db.runCommand({'dropIndexes':"BrowseFinalBuy",'index':'wid_1_rwid_1'});
6.集群修改ip后,无法正常启动
sharding模式直接修改admin库里某个表ip即可
Replica Sets则修改local库中某个表ip即可
7.聚合函数学习
db.liguojun.aggregate({$match:{"key":"苹果"}},{$group:{"_id":"$sku","total":{$sum:"$count"}}});
where 为 key = 苹果,按sku分组,求count的和,注意:_id 不可更改,只能为_id
分享到:
相关推荐
MongoDB学习MongoDB学习MongoDB学习
mongodb学习笔记资料,从安装到操作库collection 对document的crud 索引 replicaSet sharding 备份与恢复
MongoDB学习文档.zip
MongoDB学习笔记思维导图.pdf
MongoDB 学习PPT
Mongodb 学习 PPT
MongoDB 学习资料集锦,包含了mongodb权威指南,以及官方的详细手册
mongodb 学习文档,网上收集来的,个人感觉非常不错
mongoDB学习 命令 安装 总结 mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结mongoDB学习 命令 安装 总结
MongoDB学习视频.zip
MongoDB学习视频,讲解了非关系型数据库的使用方法以及搭建方法,对mongomd进行了详细的解析!入门!
初学Mongodb的好帮手,简要清晰,希望对大家有帮助
MongoDB 学习MongoDB 学习MongoDB 学习MongoDB 学习MongoDB 学习MongoDB 学习MongoDB 学习MongoDB 学习
mongodb学习
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
mongodb学习资料,包括mongodb_and_python学习笔记、mongodb权威指南、mongodb学习手册、mongodb总结。
02★MongoDB学习★MongoDB的安装
MONGODB学习总结入门篇.pdf
Mongodb 学习笔记