1,数据库连接超时:DBPool的连接时的配置:

自己进行设置:

  MongoClientOptions mco = new MongoClientOptions.Builder()

            .autoConnectRetry(autoConnectRetry).writeConcern(WriteConcern.SAFE).connectionsPerHost(
                poolSize).threadsAllowedToBlockForConnectionMultiplier(blockSize).connectTimeout(
                connectTimeout).socketTimeout(socketTimeout).maxWaitTime(maxWaitTime).build();

mongoClient = new MongoClient(listServerAddresses.get(i), mco);  


2,
六月 03, 2015 10:05:34 上午 com.mongodb.DBPortPool gotError
警告: emptying DBPortPool to /172.18.2.162:27017 b/c of error

com.mongodb.MongoException: ids don't match


3,查询数据
 DBObject timebegine = new BasicDBObject();
        DBObject timebeginegte = new BasicDBObject();
        timebeginegte.put("$gte", this.getTimeBegine());
        timebegine.put("createTime", timebeginegte);

DBCursor result = collection.find(timebegine).sort(new BasicDBObject("createTime", 1));  


正则表达式,mongo里面没有类似sql的like特性,不过可以用正则表达式代替

使用正则表达式查询有两种情况,在支持正则表达式字面值(标量)的语言里可以直接使用正则表达式字面值,比如RUBY NODEJS等。

db.USER.find({NAME:/^run/i});//以javascript为例,这个查询出所有用户名以run开头的用户,且不分大小写

像JAVA这样不支持正则表达式标量的语言怎么办呢?就有些麻烦了,需要借助MONGO api完成从字符串到正则表达式的转化。

db.USER.find(NAME:{$regex:'^run',$options:'i'});//这行命令完成跟上一行一样的工作。

其中,$options是正则表达式的选项,它一共有三个字母的任意组合可选,这三个字母分别是g i m,这三个字母可以任意组合表达不同的意义。

g:表示针对整个字符串做匹配,如果不加正则表达式在匹配到第一个符合的子串时就返回了。(global)

i:忽略大小写(insenssitive)

m:一个字符串内如果存在换行符,将作为多行模式匹配(multiple)

除了i以外其它两个选项在查询的时候恐怕用不到。

5  Exception in thread "main" com.mongodb.MongoException$CursorNotFound: cursor 2918353977892988810 not found on server /172.18.22.11:27017

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 collection.resetOptions();
    collection.addOption(Bytes.QUERYOPTION_NOTIMEOUT);
    DBCursor result = collection.find(timebegine).sort(new BasicDBObject("createTime", 1));
    int delnum = result.count();
    logger.info("需要处理的消息数为:{}", delnum);

while (result.hasNext()) {

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

mongodb清洗数据的更多相关文章

  1. 如何用item pipeline(管道)清洗数据

    版权声明:本文为博主原创文章,转载请注明出处:如果博客中有错误之处抑或有可以改进的地方,欢迎在评论区留言. https://blog.csdn.net/f156207495/article/detai ...

  2. MongoDB丢数据问题的分析

    坊间有很多传说MongoDB会丢数据.特别是最近有一个InfoQ翻译的Sven的一篇水文(为什么叫做水文?因为里面并没有他自己的原创,只是搜罗了一些网上的博客,炒了些冷饭吃),其中又提到了丢数据的事情 ...

  3. 【mongodb系统学习之十二】mongodb修改数据(一)

    十二.mongodb修改数据:update 1).修改数据库数据:update:语法 db.collectionName.update({},{},boolean,boolean): 2).updat ...

  4. discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现

    discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...

  5. mongoDB 插入数据 用java实现

    import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; impor ...

  6. 【mongodb系统学习之十一】mongodb删除数据

    十一.mongodb删除数据: 1).删除全部文档:remove,语法db.collectionName.remove({}):小括号里边必须要有条件,否则不成功:如果只是一个空的{},则会删除集合内 ...

  7. 【mongodb系统学习之九】mongodb保存数据

    九.mongodb保存数据: 1).插入.保存数据:insert:语法db.collectionName.insert({"key":value}),key是字段名,必须是字符串( ...

  8. MySQL到MongoDB的数据同步方法!

    许多公司随着业务发展,单数据库实例已经不能满足业务需要,需要定期进行数据交换,同步到MongoDB, 或其他位置的MySQL,以分散数据库的并发压力. 目前大部分都采用自行开发的方式处理,存在开发成本 ...

  9. NodeJs之EXCEL文件导入导出MongoDB数据库数据

    NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...

随机推荐

  1. 再回首,Java温故知新(八):Java基础之字符串

    字符串是Java中使用频率最高的类,但是它却不属于基本类型,而是预定义了String类来表示.从String类的源码可以看到,String是基于char[]实现的,而且Java中的String是不可变 ...

  2. [转] C++11带来的move语义

    PS: 通过引入接收右值的函数形参,可以通过接收右值来实现高效 PS在C++11中,标准库在<utility>中提供了一个有用的函数std::move,这个函数的名字具有迷惑性,因为实际上 ...

  3. Badge分析&如何逼死处女座

    Badge分析 所谓Badge,原本是iOS上的一个效果,但是被Android抄的多了,也就成了Android的标配.图就不上了,大家都懂的. 应用icon显示角标实际上是在Launcher中实现的, ...

  4. Android 静默安装/后台安装

    Android实现静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限.调用系统隐藏的api.需要系统环境下编译.需要跟systemUI同进程什么的.我不知道他们真的实现了静默 ...

  5. CentOS6.6x86_64 部署 Nginx1.62+MySQL5.6.20+PHP5.6.4

    准备工作 切换到管理员身份 su - 安装编译扩展 yum install -y gcc-c++ 创建数据库目录.代码目录 mkdir /mnt/data /mnt/www 安装Nginx 1.6.2 ...

  6. (转)Thinkphp系统常量 演示

    Thinkphp2.1框架内置了许多系统常量, 具体如下: __ROOT__ : 网站根目录地址 __APP__ : 当前项目(入口文件)地址 __URL__ : 当前模块地址 __ACTION__  ...

  7. javascript 获取用户光标,插入文本

    图1 如图1所示,点击[函数名称],将函数名称添加到表达式内容框中,点击参数名称,将参数名称index1作为方法的参数添加到表达式内容中的表达式中. 该功能实现主要是采用了javascript获取鼠标 ...

  8. javascript判断值是否undefined

    function isUndefined(variable) { return typeof variable == 'undefined' ? true : false; }

  9. myeclipse 'no default proposals' when use 'alt + /'.

    solution: Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced in th ...

  10. 微信 token 验证

    package org.sxl.weixin; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...