欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MongoDB中怎么將時間戳轉(zhuǎn)為日期格式-創(chuàng)新互聯(lián)

這篇文章給大家介紹MongoDB中怎么將時間戳轉(zhuǎn)為日期格式,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

十余年專注成都網(wǎng)站制作,成都定制網(wǎng)站,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁制作,對陽光房等多個領(lǐng)域,擁有豐富的網(wǎng)站建設(shè)經(jīng)驗。

MongoDB模糊查詢方法示例:

模糊查詢:tname包含某個關(guān)鍵字測試'

cd /opt/soft/mongodb/bin
./mongo --host 192.168.0.1 --port 17017 test
db.test_info.find({"tname": {$regex: '測試', $options:'i'}}) 
db.test_info.find({"tname": {$regex:/測試.*/i}})

需要找出所有時間戳的數(shù)據(jù)記錄,因為時間戳多是以數(shù)字開頭,最近幾年的都是14XXX的,所以正則表達(dá)式以14開頭搜索,實現(xiàn)方式如下:

mongos> use pos
switched to db pos
mongos> 
db.paymentinfo.find({"paymentTime": {$regex: '14', $options:'i'}}).count();
mongos> db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}}).count();
1995
mongos>

查詢到有1995條記錄,蠻多的,需要處理記錄數(shù)不少。

建立遍歷函數(shù):

db.cms_Content.find({"userId":"444333f107624489bae28140d1970bbc"}).forEach(function(x) {
 if(x.title&&x.fileName){
 print(x.contentId);
db.cms_Content.update({"contentId":x.contentId},{"$set":{"title":x.fileName}});
 }
})

PS:證明不能用,效果一般

3,首先刪除一部分TXNTYPE為1的脹數(shù)據(jù)

刪除查詢出來的集合數(shù)據(jù)

db.paymentinfo.remove( {"txnType": {$regex: '1', $options:'i'}}, 300 );

刪除所以查詢出來的記錄:

db.paymentinfo.remove( {"txnType": {$regex: '1', $options:'i'}});

刪除paymentTime=0的數(shù)據(jù)記錄

db.paymentinfo.remove( { paymentTime : "0" } )

4,遺留問題需要解決

for (var i = 0, len = 3; i < len; i++) {var child=dschilds[i]; var id=child._id; printjson((id)); var paymentTime=child.paymentTime; printjson(paymentTime)}  批量修改校驗錯誤日期數(shù)據(jù)的期待解決的問題

 db.paymentinfo.update({"_id": ObjectId("55d56fdbe4b0c1f89b5356ae")},{$set:{"paymentTime" : "14400511608049527"}},true);
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}});
 for (var i = 0, len = 1; i < len; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 printjson(id);
 var paymentTime=child.paymentTime; 
 var datestr=paymentTime 
 #問題在這里,這個日期是時間戳,比如1440560826340的模式,請問下,在mongodb shell里面如何將時間戳變成字符串'2015-12-15 12:34:16'這樣的日期字符串呢?
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }
 db.paymentinfo.find({"_id":ObjectId("55dd36dc45ce9e75b91eb340")}).forEach(function (a) { a["paymentTime"] = new Date(parseInt(paymentTime) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); printjson(a) });

看到這里也不能解決我的問題,所以思路停止了,toLocaleString()獲得的是GST的日期格式串,不是我需要的yyyy-mm-dd hh:mm:ss結(jié)構(gòu)的日期格式數(shù)

5,找到突破口,使用JAVASCRIPT

mongodb官網(wǎng)已經(jīng)報錯提示有說明,mongodb shell里面是可以調(diào)用JavaScript腳本,這么說來,直接在窗口里面寫js腳本來實現(xiàn)就ok了,然后準(zhǔn)備拿一條數(shù)據(jù)來驗證是否正確,結(jié)果成功了,驗證腳本如下:  – 單獨一條集合數(shù)據(jù)中,將時間戳變成日期字符串:

db.paymentinfo.find({"_id":ObjectId("55d56cbbe4b0c1f89b5356a4")}).forEach(function (a) { 
 #這個函數(shù)是在月、日、時分秒的個位數(shù)字前面補(bǔ)0操作的
 function tran_val(val){
 if(parseInt(val)<10){
 val="0" +val;
 }
 return val;
 }
 # 這里是paymentTime為時間戳
 var datenew = new Date(parseInt(paymentTime)); 
 # 獲取年月日
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 # 獲取時分秒
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds()); 
 # 組裝成標(biāo)準(zhǔn)的日期格式y(tǒng)yyy-mm-dd hh:mm:ss 
 var datastr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 a["paymentTime"]=datastr
 print(paymentTime); 
 printjson(a) }
 );

上面的例子表明直接用js腳本可以實現(xiàn)時間戳到日期格式轉(zhuǎn)變,那么下面就開始for循環(huán)批量修改:

 db.paymentinfo.update({"_id": ObjectId("55d56fdbe4b0c1f89b5356ae")},{$set:{"paymentTime" : "14400511608049527"}},true);
 # 使用遍歷數(shù)組的方式來操作144開頭的時間戳
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '144', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length ; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 var paymentTime=child.paymentTime;
 print(paymentTime);
 function tran_val(val){
  if(parseInt(val)<10){
  val="0" +val;
  }
  return val;
 }
 var datenew = new Date(parseInt(paymentTime)); 
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds());
 var datestr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 # 這里開始進(jìn)行修改操作
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }
 # 使用遍歷數(shù)組的方式來操作145開頭的時間戳
 var ds= db.paymentinfo.find({"paymentTime": {$regex: '145', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length ; i++) {
 var child=dschilds[i]; 
 var id=child._id; 
 var paymentTime=child.paymentTime;
 print(paymentTime);
 function tran_val(val){
  if(parseInt(val)<10){
  val="0" +val;
  }
  return val;
 }
 var datenew = new Date(parseInt(paymentTime)); 
 var year=datenew.getFullYear(); 
 var month=tran_val(datenew.getMonth()+1);
 var date=tran_val(datenew.getDate()); 
 var hour=tran_val(datenew.getHours());
 var minute=tran_val(datenew.getMinutes()); 
 var second=tran_val(datenew.getSeconds());
 var datestr=year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :datestr}},true);
 db.paymentinfo.find({"_id": id});
 }

6,碰到新的問題,統(tǒng)一日期格式,將斜杠變成橫杠

–批量修改日期 斜杠變成橫杠

 var ds= db.paymentinfo.find({"paymentTime": {$regex: '/', $options:'i'}});
 var dschilds=ds.toArray();
 for (var i = 0;i <dschilds.length; i++) {
 var child=dschilds[i]; 
 var id=child._id;
 var paymentTime=child.paymentTime;
 var paymentTime2=paymentTime.replace(/\//g,"-");
 db.paymentinfo.update({"_id": id},{$set:{"paymentTime" :paymentTime2}},true);
 print(paymentTime);print(paymentTime2);
 db.paymentinfo.find({"_id": id});
 }
-- insert data
insert into t1 select 1,'a' from db1.t2;
call db1.proc_get_fints

關(guān)于MongoDB中怎么將時間戳轉(zhuǎn)為日期格式就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章題目:MongoDB中怎么將時間戳轉(zhuǎn)為日期格式-創(chuàng)新互聯(lián)
URL分享:http://chinadenli.net/article48/dgjchp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、小程序開發(fā)、Google、營銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)