
mongodb
mongodb技术
Tatum_99999
java开发
展开
-
docker中安装mongo3.2
今天在虚拟机中用docker安装了mongo最近版和mongo3.2,旨在巩固docker的使用,也为了后续mongodb的一些技术验证。相对于最新版,指定3.2版本的安装会有一些细节不太一样,再考虑到实际应用中可能指定版本的需求更多一些,因此这里仅记录3.2的安装验证过程,以备忘。镜像拉取使用docker的第一步是启动docker,启动以后可以先单独拉取镜像,也可以使用run命令,run的时候如果没有找到镜像,也会自动取下载。但是这里为了巩固docker的操作,还是选择分开执行拉取和运行。镜像拉取原创 2021-10-10 11:52:42 · 229 阅读 · 0 评论 -
centos7中redis、mongodb、kafka安装记录
一个完整的java后台系统,通常会涉及到非常多的技术,例如数据库、缓存、消息中间件等,除此之外,从部署层面讲,可能还离不开nginx、docker这些,要更加熟练的使用这些技术,加深理解,必不可少的需要有自己的环境。随着上次centos6.5的系统升级到centos7.8,打算把hadoop、redis、mongodb、kafka等这些软件都迁移到新的虚拟机系统中,docker和hadoop的安装部署最近都有相关记录,这次先补充redis、mongodb和kafka。redis安装redis的安装,实原创 2020-09-08 12:29:05 · 667 阅读 · 0 评论 -
mongodb系列文章目录导航
【mongodb系统学习之一】mongodb的简单安装【mongodb系统学习之二】mongodb的启动【mongodb系统学习之三】进入mongodb shell【mongodb系统学习之四】查看mongodb进程【mongodb系统学习之五】mongodb启动最常用参数【mongodb系统学习之六】mongodb配置文件方式启动【mongodb系统学习之七】mongodb的关闭【mongodb系统学习之八】mongodb shell常用操作【mongodb系统学习之九】mongodb保存原创 2020-07-31 11:51:26 · 1145 阅读 · 0 评论 -
不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常。 主要原因实际上是和mongodb本身无关的,因为他们改的是配置文件的密码,而实际上这个密码在代码中根本就没有使用,他们在代码中已经把用户验证信息写死。 在协助他们解决这个问题的时候,我看到他们代码中在和mongodb数据库交互时使用了原创 2016-04-21 18:18:18 · 9461 阅读 · 0 评论 -
mongodb去除重复的数据
今天出现了一个新的需求,有个部门需要拿到mongodb中的数据,要求去掉其中一个字段内容相同的数据。虽然mongodb中有distinct来去重,但是和mysql的distinct不同的是,mysql中能用distinct * 返回整条记录的信息,而mongodb的distinct我却只是返回去重的那个字段的数据(或许mongodb也可以返回整条,但是我不知道)。mysql中的distinct返回原创 2016-06-28 11:18:37 · 41163 阅读 · 10 评论 -
mongodb去除重复的数据(二)
前天因为工作需要,开始着手对数据库中两千多万的数据中其中一个字段重复的数据进行去重。原本使用一些测试的数据测试后,前天写的那个方法是可行的,但是当面对这个两千万的真实数据时,我却发现这方法有些不顶用了,最终只好又经过若干次的尝试,总算成功去重。最终总结一下整个过程:1、这个方法就是上一篇所讲的,利用mongodb的游标dbcursor和while循环的方式。var res=db.test.find原创 2016-07-01 09:47:30 · 18854 阅读 · 2 评论 -
mongodb3.0副本集搭建补充~~非admin数据库的用户权限
之前有搭建mongodb3.0的副本集,不过当时直接使用的admin数据库,用户也是直接给的root。链接:http://blog.csdn.net/tuzongxun/article/details/51723259最近想要把数据移到非admin数据库上,便重新以非admin库创建用户,过程大致和之前的一样,但创建用户的时候还是遇到了一些问题,主要是在用户角色和权限上。我搭建过程中参考了下边的用原创 2016-07-11 17:03:07 · 7065 阅读 · 7 评论 -
linux shell中获取mongodb最大连接数、内存使用情况等
前两天接到了一个新的需求,需要在linux shell脚本中监控到mongodb最大连接数、内存使用情况等。但是我对于linux shel很不了解,只是会一些简单常用的linux的操作而已,只要一顿狂搜,最终多番尝试下终于获取到这些值。成功的步骤大致如下:0、./mongostat -u admin -p admin --authenticationDatabase admin -n 1 --js原创 2016-07-14 14:41:12 · 5834 阅读 · 4 评论 -
mongodb3.0分片及java代码连接操作测试(开启用户验证)
最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定。一、服务器搭建过程:1、安装四个mongodb:一个作为config、一个作为mongos、另外两个作为主要数据存储的服务器(机器ip192.168.0.201),如图:分别对应图中被红框框起来的mongoconf、mongos、mongo1、mongo2(解压安装,安装过程原创 2016-07-18 10:51:00 · 11465 阅读 · 2 评论 -
mongodb命令行group分组和java代码中group分组
group分组统计是数据库比较常用的功能,mongodb也不例外。不过相对于普通的增删改查,group操作就略微麻烦一些,这里对group在shell中的操作、使用java原生代码操作以及集成spring进行操作进行一个简单的归纳总结,分组的途径和方法应该都有多种,这里每一样只举一例。本例中数据源如下:需要使用group实现的目的是:按年龄分组统计出每一组的数量。1、mongo shell中执行如原创 2016-07-19 08:45:35 · 16542 阅读 · 2 评论 -
MongoDB集群之分片
原文:点击打开链接MongoDB分片分片(sharding)是将数据拆分,将其分散在不同的机器上的过程。MongoDB支持自动分片片键(shard key)设置分片时,需要从集合里面选一个键,用该键作为数据拆分的依据,此键就叫片键分片一般有以下三部分组成:片 可以是普通的mongod进程,也可以是副本集。但是即使一片内有多台服务器转载 2015-07-13 17:49:03 · 974 阅读 · 0 评论 -
mongodb3.03开启认证
原文地址:http://21jhf.iteye.com/blog/2216103下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下: (百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略) Windows下我做了一个bat文件,用来启动mongodb,命令行如下: mongod --dbpath转载 2015-08-10 09:39:32 · 1413 阅读 · 0 评论 -
【Mongodb】3.0 配置身份验证db.createUser()说明
原文地址:http://bbs.51cto.com/thread-1146654-1.html定义:创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。语法:db.createUser(user, writeConcern) user这个文档创建关于用户的身份认证和访问信息; writeConcern这个文档描述转载 2015-08-11 14:52:36 · 7674 阅读 · 0 评论 -
把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中
mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger。但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式。但是mongodb更新实在太快,转眼间,从3.0直接跳到3.2,默认的存储引擎也改成了WiredTiger。据说这个引擎具有占用磁盘空间更小,占用内存空间更小,查询效率更高等一系列特点。为了防患于未然,今天尝试了一下把3.0的数原创 2016-06-27 17:16:17 · 6445 阅读 · 0 评论 -
Mongodb3.0.5副本集搭建及spring和java连接副本集配置
这是去年写的一篇文档,最近突然发现并没有发不出来,因此现在补上,希望能对某些朋友有所帮助。因为当时记录时没有截图,因此这里看起来可能就比较单调。一、基本环境:mongdb3.0.5数据库spring-data-mongodb-1.7.2.jarmongo-java-driver-3.0.2.jarlinux-redhat6.3tomcat7二、搭建mongodb副本集:1、 分别在三台linu原创 2016-06-20 21:05:21 · 20632 阅读 · 0 评论 -
mongodb一些使用技巧或注意事项记录
1、有的时候需要删除指定字段那一列,使用update操作。例如要删除name这一列:query json:{"name":{$exists:true}} update json:{$unset:{"name":""}}2、数据导出,在mongodb的bin目录执行mongoexport命令并设定相关的参数,例如:./mongoexport -h 192.1原创 2016-05-23 12:20:39 · 4500 阅读 · 17 评论 -
linux虚拟机中安装mongodb
今天在linux虚拟机中安装了mongodb数据库,安装过程主要参照了网上的一片文档,大部分地方都没有多大区别,只是在某些细节上有所改变。我参考的文档是:http://my.oschina.net/MrMichael/blog/266501?p=11. 参考文档中的第一步下载安装包,原文:mongodb-linux-x86_64-2.2.7.tgz;而我:mo...原创 2015-05-06 15:44:52 · 5767 阅读 · 0 评论 -
BSON与JSON的区别
转自:https://blog.csdn.net/z69183787/article/details/26709505 BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。BSON主要会实现以下三点目标:1.更快的遍历速度...转载 2018-09-05 17:04:01 · 341 阅读 · 0 评论 -
mongodb副本集搭建过程中的问题和解决技巧
在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的。 但是,却仍然有这种情况存在,就如我这几天主要负责的事,就是一个系统的全部服务器迁移中的部分机器迁移,还有一部分由别人负责。 这个系统涉及到flume数据采集,storm数据分析,rabbitmq消息分发,ehcache缓存提升系统性能,原创 2016-12-15 11:14:36 · 2874 阅读 · 0 评论 -
mongodb副本集中其中一个节点宕机无法重启的问题
2-8日我还在家中的时候,被告知mongodb副本集中其中一个从节点因未知原因宕机,然后暂时负责代管的同事无论如何就是启动不起来。 当时mongodb的日志信息是这样的: 实际上这里这么长一串最重要的信息应该是在后边几行:2017-02-08T17:10:28.754+0800 I REPL [rsBackgroundSync] replSet our last op ti原创 2017-02-14 12:54:50 · 5648 阅读 · 10 评论 -
修改mongodb3.0副本集用户密码遇到的坑
最近公司对项目安全方面的问题很是重视,进行了多次各种安全漏洞的扫描,于是乎就扫到了mongodb弱口令的问题。在项目部署初期,因为大家对这个都不是特别重视,大概是因为觉得反正是内网项目吧,所以mongodb数据库的用户名和密码就都是admin。这次扫到弱口令之后,要求解决这个问题,于是任务便分到了我的头上。遵循强口令的标准,我把admin改成了由大写字母、小写字母、数字和特殊字符共同组成的密原创 2016-04-18 17:35:19 · 11410 阅读 · 2 评论 -
(二十四)mongodb中group的问题二
今天的工作还是继续昨天没有完成的,由于对mongodb数据库的不熟悉,导致昨天的思路上也出了一点问题,我需要查询出同一个ruleID中不同的processingID的条数,然后根据条数来排列先后顺序,如果条数相等的情况下,就根据updateTime再排序。 昨天的思路是先按数量排序,然后再根据ruleID查出最后的修改时间,因为那个时候实际上还是没有理解group几个参数的真正意思,尤其是对原创 2015-04-02 08:43:46 · 805 阅读 · 0 评论 -
(二十三)mongodb中group的问题
今天的工作中我需要从mongodb数据库中查出一定的数据,并排序后返回给前台,数据库表中包含了ruleID,processingID,userID,updateTime等字段。 同一个ruleID可以对应多条processingID,我要做的是查出同一个ruleID中不同的processingID的条数,然后根据条数来排列先后顺序,如果条数相等的情况下,就根据updateTime再排序。原创 2015-03-29 17:33:21 · 1287 阅读 · 0 评论 -
使用spring连接及操作mongodb3.0
前边有一篇记录过不使用spring,直接在java代码中连接和操作mongodb数据库,这里就紧随其后记录一下使用spring的情况下,在java中简单操作mongodb。maven导包配置:因为涉及了sping以及springmvc,因此也需要导入它们相关的包:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns原创 2016-11-25 13:12:20 · 34207 阅读 · 13 评论 -
(二十八)monggodb和maven零散笔记
(1)maven导包的问题:当在pom.xml界面的Dependencies中点击add之后输入jar包查询条件后,如果确定条件没有输错,repo中也确实存在相关jar包,而并没有查处任何结果时,可以用以下方式处理: window-show view-other-maven-maven repositories,然后在下方的maven repositories界面中的local re...原创 2015-04-22 09:17:48 · 1906 阅读 · 0 评论 -
MongoDB源码概述——内存管理和存储引擎
原文地址:http://creator.cnblogs.com/数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与MongoDB对数据库记录文件的存储管理操作有关。MongoDB采用操作系统底层提供的内存文件映射(MMap)的方式来实现对数据库记录文件的访问,MMAP可以把磁盘文件的全部内容直接映射到进程转载 2015-08-11 17:37:09 · 1027 阅读 · 0 评论 -
mongodb的读写分离
转自:http://blog.csdn.net/sd0902/article/details/21538621mongodb的读写分离使用Replica Sets来实现对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondar转载 2015-11-09 10:43:47 · 1387 阅读 · 0 评论 -
【mongodb系统学习之十】mongodb查询(一)
十、mongodb查询:find ;查询时条件中不能引用文档中其他键的值; 1)、查询数据库全部数据:语法db.collectionName.find();默认只显示前20条,如图: 2)、按条件查询数据:语法db.collectionName.find({“key”:value});原创 2015-07-23 19:06:59 · 870 阅读 · 0 评论 -
【mongodb系统学习之十】mongodb查询(二)
5)、常用查询条件: a)、比较操作符:“$lt”,“$lte”,“$gt”,“$gte”,分别是,,>,>=; b)、不等于:“$ne”; c)、查询一个键的多个值:“$in”;里边的数据可以是不同类型; d)、$or:可以查询不同键,也可以查相同键:原创 2015-07-23 19:15:14 · 816 阅读 · 0 评论 -
【mongodb系统学习之十】mongodb查询(三)
6)、特殊类型的查询: A)、查询键为null的文档:查询时,如果按常规的key:null的方式做条 件,不仅会匹配到值为null的,还会匹配到不存在这个键的;如果只是要值为null的文档,就必须使用$exists和$in; B)、正则表达式查询:/aaa/i,其中i是正则表达式标志,这个标志可有可无;没有这个标志时,还可以匹配他本身(key的值就是正则表达式);原创 2015-07-28 08:53:49 · 938 阅读 · 0 评论 -
spring4.0整合mongodb3.0.4项目实践(用户验证)
我们的项目用到了spring框架和mongdb数据库,随着mongodb升级到3.0已有半年时间,我们也开始随之升级,但是3.0的用户验证有所更改,导致原来的很多配置无法再用。经过几天的尝试后,终于成功的用spring配置验证。升级用了两个新的jar包,分别是pring-data-mongodb1.7.2(http://pan.baidu.com/s/1bnkAA67)和mongodb-j原创 2015-08-13 08:16:58 · 8699 阅读 · 1 评论 -
【mongodb系统学习之十二】mongodb修改数据
十二、mongodb修改数据:update 1)、修改数据库数据:update;语法 db.collectionName.update({},{},boolean,boolean); 2)、update共有四个参数,其中后两个是可选项; 第一个参数是要修改的文档的匹配条件,第二个是要替换的新文档; 第三个参数原创 2015-07-30 11:42:41 · 2067 阅读 · 0 评论 -
【mongodb系统学习之十一】mongodb删除数据
十一、mongodb删除数据: 1)、删除全部文档:remove,语法db.collectionName.remove({});小括号里边必须要有条件,否则不成功;如果只是一个空的{},则会删除集合内所有文档数据; 2)、按条件删除文档:remove删除数据的时候,不删除源数据;逻辑删除,不删除集合;使用showdbs可以看到数据库占用的内存与删原创 2015-07-30 11:12:32 · 2741 阅读 · 0 评论 -
使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证:ServerAddress sa = new ServerAddress(host, port);List mongoCredentialList = new ArrayList();mongoCredentialList.add(MongoCredential.create原创 2015-08-14 09:00:12 · 2167 阅读 · 5 评论 -
linux下mongodb定时备份指定的集合
目标:把一台linux机上mongodb的数据定时备份到另一台机上:过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了mongodump和mongorestart,成功实现目标。 (\x00的问题还在寻找解决办法);脚本代码:#获取系统时间并转换成毫秒数current=`date "+原创 2015-09-02 10:59:50 · 1970 阅读 · 1 评论 -
mongdb3.0用户验证问题
1、 用户验证方式更改:Mongodb2.6的默认用户验证方式是:MONGODB-CRMongodb3.0的默认用户验证方式是:SCRAM-SHA-1 因为新的验证方式在spring和java中还有一些问题,因此现在项目中3.0的数据库依旧使用之前的验证方式。 把3.0的用户验证改为MONGODB-CR,过程如下:(1)、进入mongoshell,mongodb的bi原创 2015-09-08 10:23:55 · 1526 阅读 · 3 评论 -
mongoVUE对mongodb常用的基础操作
一、 连接mongodb服务端:1、 双击mongoVUE,进入如下图所示界面:2、 点击上图中的“+”,出现如下图,输入要连接的mongodb服务器的ip、端口、用户名、密码以及要连接的数据库等:3、 信息填写完成后点击“test”,如果成功,则会弹出如下界面,之后点击“save”;如果不是如下界面,代表输原创 2015-12-17 18:24:11 · 6481 阅读 · 0 评论 -
使用mongoVUE删除大量数据的情况下失效问题
昨天有一个系统出现了问题,导致半夜时大量的错误数据产生,早晨一早接到上边通知让把这些数据尽数删除。不可否认在数据操作时mongoVUE更加直观,因此一般情况下我也都是使用这个工具,但是今天却出现了问题。首先我查询了一下需要删除的数据的数据量,查询操作正常,如图:然后一样的条件执行删除remove操作,结果就卡在那里许久之后弹出错误提示框如下:几次尝试后均是如此,于是我只好改道使用系统中的命令行进入原创 2016-06-13 10:32:04 · 10033 阅读 · 3 评论 -
【mongodb系统学习之九】mongodb保存数据
九、mongodb保存数据: 1)、插入、保存数据:insert;语法db.collectionName.insert({“key”:value}),key是字段名,必须是字符串(使用有的工具,可以不加引号);插入数据时,会默认产生_id字段,一般不指定;对于一个使用use创建的新数据库,只有保存了数据以后,使用showdbs才能查看到,如图:原创 2015-07-23 18:53:36 · 1397 阅读 · 0 评论 -
【mongodb系统学习之八】mongodb shell常用操作
八、mongodb shell常用基础操作(每个语句后可以加分号,也可以不加,看情况定(有的工具中可以不加),最好是加): 1)、进入shell操作界面:mongo,上边已有演示; 2)、查看当前使用的数据库:db,上边已有演示; 3)、查看当前所有存在的数据库:showdbs;查看当前数据中所有集合,showcollections如图;原创 2015-07-23 18:45:15 · 797 阅读 · 0 评论