随笔分类 - MongoDB
摘要:mapReduce 的优势在于分布式,这一节记录一个分布式统计的示例,整个过程分为这几步:启动分布式服务、手动分片、导入数据、执行 mapReduce。下面单独说说这几步。 1、启动分布式服务 参考前面的第10节和第11节,不在重复说了。 2、手动分片: sh.enableSharding('tes
阅读全文
摘要:mapReduce从功能上说类似于RDBMS中的group,它的强大之处在于很好的支持分布式。相比于group、aggregate,mapReduce的用法很简单,其实它的工作原理也很简单,下面介绍一下。 mapReduce工作分为两步,一是映射,即map,将数据按照某一个规则映射到一个数组里,比如
阅读全文
摘要:与group相比,aggregate内置了很多方法,常用的如下: $match 相当于关系型数据库中的where $group 相当于关系型数据库中的group by $project 相当于关系型数据库中的select $sort 相当于关系型数据库中的order by $limit 相当于关系型
阅读全文
摘要:mongodb有3个方法实现数据的分析与统计,分别是group分组统计、aggregate简单聚合、mapReduce强大统计。group 函数需要自己实现逻辑,所以它很灵活,但是有一个缺点就是不支持分片,不支持数据的分布式运算,在下面的章节中再分析支持share分片的方法。下面先说一下 group
阅读全文
摘要:replcation 复制集保证了每个节点中的数据都是一样的,将相同的数据备份到不同的节点,shard 分片是按照某种规则将不同数据写到不同的节点中。replcation与shard结合使用只需将复制集添加到 shard 中就可以了,每一个复制集看做一个整体,当成一个节点对待,如图所示: 一般来说如
阅读全文
摘要:上一篇讲到了 mongodb 的 自动分片,自动分片遇到一个问题,就是 chunk 在不同服务器之间来回移动,增加了服务器的 IO,为了解决这个问题可以采用手动提前分片。顾名思义,手动分片就是在 mongodb 分片应用搭建好的时候就提前规定好每个片有多少 chunk ,什么数据分配到哪个 chun
阅读全文
摘要:share分片就是将不同数据放在不同节点里。与复制集相比稍微复杂。它除了存储数据的节点外还有一个路由节点 mongos,一个中心配置节点 configsvr,configsvr 不存储数据,存储meta信息,即某条数据在哪个片上的信息。mongos 查询数据时先要找 configsvr ,询问该数据
阅读全文
摘要:mongodb 通过一主一从、一主多从可以实现数据库备份,读写分离。为了便于查找现将实现过程记录下来。这里总共有3个节点 1、在 mongodb 目录下新建3个配置文件,作为启动3个节点的参数,文件及内容如下: mongodb1.conf mongodb2.conf mongodb3.conf 2、
阅读全文
摘要:mongodb 可以导出 json、csv、二进制格式。导出的工具是 mongoexport,在/bin 目录下。导出导入的参数有以下一些: -h:服务器路径 --port:端口号 -d:database 数据库 -c:collection 表 -f:field 列 -q:query 查询条件 --
阅读全文
摘要:mongodb 服务启动时不用 --auth 参数,默认连接没有用户名、密码。mongodb 的用户是以数据库为单位来建立的,每个数据库都有自己的管理员。在设置用户时,需要先在admin数据库下建立管理员,这个管理员登录后,相当于超级管理员。牵扯到服务器配置层面的操作,都需要切换到admin数据库。
阅读全文
摘要:遍历1: > var mycursor=db.person.find();> while(mycursor.hasNext()){printjson(mycursor.next())}{ "_id" : 1, "name" : "张三", "sex" : "男", "age" : 37.3 }{ "
阅读全文
摘要:1、ne:不等于 db.person.find({_id:{$ne:3}}); 查询 _id 不等于3的记录 2、nin:相当于not in db.person.find({_id:{$nin:[1,2]}}); 查询 _id 不是 1、2 的记录 3、exists:是否包含某列 db.person
阅读全文
摘要:1、修改列名 db.person.update({age:31},{$rename:{address:'address2'}}); age 为31 的列 的 address列的名称修改为address2,只会修改一条记录。 db.person.update({name:'张三'},{$rename:
阅读全文
摘要:1、数据添加 添加一条数据,json格式。 db.goods.insert({name:'电脑',price:5600,goods_num:'00001',click_num:1}); db.goods.insert({_id:1,name:'苹果',color:'red',price:12});
阅读全文
摘要:1、查询数据库。 show dbs; 或者 show databases; 2、创建数据库,必须创建collection,如果只有use shop; 不会创建数据库。 use shop; db.createCollection('goods'); 3、删除数据库。 use shop; db.drop
阅读全文
摘要:1、下载包,存放目录:/usr/local/src/mongodb-linux-x86_64-rhel62-3.6.4.tgz 2、解压:tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz,解压后文件: bin、GNU-AGPL-3.0、README、TH
阅读全文