mongodb清洗数据
生活随笔
收集整理的這篇文章主要介紹了
mongodb清洗数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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));??
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ?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())?{?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
來自為知筆記(Wiz)
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())?{?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/zhailzh/p/1789e5526865563ee06113bbb1cab30c.html
總結
以上是生活随笔為你收集整理的mongodb清洗数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bash shell基础之三字符串测试及
- 下一篇: DOM与元素节点内联样式