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学习文档.zip”包含了一个名为“MongoDB学习文档.docx”的文件,该文件很可能是对MongoDB的基础知识、安装配置、操作指南以及Java API使用的详细介绍。 MongoDB的核心特性包括其灵活性、高可用性...
### MongoDB学习手册精要知识点概览 #### 一、MongoDB简介 MongoDB,源于英文单词“humongous”,意指其设计初衷在于处理海量数据。作为一款开源、面向文档的NoSQL数据库,MongoDB凭借其灵活性和高性能,迅速成为...
mongodb学习笔记资料,从安装到操作库collection 对document的crud 索引 replicaSet sharding 备份与恢复
"MongoDB 学习资料集锦" 包含了深入学习 MongoDB 的关键资源,如 "mongodb权威指南" 和 "官方的详细手册"。这些资料将帮助初学者和经验丰富的开发人员掌握 MongoDB 的核心概念、操作以及最佳实践。 首先,"mongodb...
这份“mongodb学习手册”可能涵盖了MongoDB的基本概念、安装配置、数据操作、查询优化、备份恢复、安全性以及一些高级特性,例如分片、复制集和聚合框架等内容。通过阅读这本手册,初学者可以快速理解MongoDB的工作...
这份"mongodb 学习文档"涵盖了多个方面的内容,包括MongoDB的基础概念、安装配置、数据模型、查询操作、聚合框架、索引管理、复制集、分片集群等关键知识点。下面将对这些主题进行详细阐述。 一、基础概念 MongoDB...
MongoDB 学习 PPT 上课教程 MongoDB 是一个开源的、基于分布式的、面向文档存储的非关系型数据库。 MongoDB 的出现是为了解决大规模数据集合、多种数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的...
`mongodb学习手册`可能是一个全面的教程,旨在引导初学者逐步了解MongoDB。它可能从安装和启动MongoDB服务开始,然后介绍数据插入、查询和更新的基本语法。此外,它可能还涵盖了一些进阶主题,如聚合框架、地理空间...
本篇学习笔记将从基础操作到高级功能,详细阐述MongoDB的关键知识点。 首先,MongoDB的基本单元是集合(collection),类似于关系型数据库中的表,而集合中的元素称为文档(document),文档是键值对的集合,类似于...
2024全网最全-MongoDB学习资料、安装教程,是一份集学习和安装为一体的资源。MongoDB是一款基于分布式文件存储的数据库系统,由于其高效、高性能、高可用等特点而备受关注。该资源收集了众多MongoDB的学习资料和安装...
MongoDB学习总结入门篇.pdf MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。下面将对MongoDB的基本概念、特点、使用原理和基本操作进行详细介绍。 1. MongoDB基本...
MongoDB学习视频,讲解了非关系型数据库的使用方法以及搭建方法,对mongomd进行了详细的解析!入门!
MongoDB 学习笔记 本文档是 MongoDB 学习笔记,涵盖了 NoSQL、Cache、运行平台等多个方面的知识点。 一、NoSQL 数据库 MongoDB MongoDB 是一个强大、灵活、可扩展性好的文档数据存储器,可以完成大部分关系数据库...
"mongodb学习手册"作为一本基础教材,会详细介绍MongoDB的数据类型、数据结构如文档、集合和数据库,以及命令行工具的使用方法。它可能会讲解如何进行数据备份和恢复、性能优化等实用技巧,是系统学习MongoDB不可或...
### MongoDB学习文档与Java集成详解 #### 一、MongoDB简介与安装 **MongoDB**是一种基于分布式文件存储的开源数据库系统,具有高性能、高可用性以及易扩展性等特点,适用于处理大规模数据集的应用场景。 ##### ...
在“MongoDB学习资料教程讲义及代码.zip”这个压缩包中,包含了丰富的学习资源,包括讲义和实际操作代码,是学习MongoDB的理想资料。 首先,我们来详细了解MongoDB的基本概念。MongoDB是以JSON格式存储数据的,这种...
以下是对MongoDB学习的一些关键知识点的详细解释: 1. **MongoDB的基本概念**:MongoDB以集合(Collections)的形式存储数据,集合相当于关系型数据库中的表。集合内包含文档(Documents),文档是JSON格式的数据...