麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > MongoDB > 正文

MongoDB批量將時(shí)間戳轉(zhuǎn)為通用日期格式示例代碼

2020-10-29 18:43:48
字體:
供稿:網(wǎng)友

前言

時(shí)間戳(timestamp),通常是一個(gè)字符序列,唯一地標(biāo)識(shí)某一刻的時(shí)間。本文將詳細(xì)介紹MongoDB批量將時(shí)間戳轉(zhuǎn)為通用日期格式的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧

1,官網(wǎng)提供的MONGODB遍歷腳本:

官方文檔地址:https://docs.mongodb.org/manual/tutorial/remove-documents/
>var arr = ["ab","cd","ef"]
>var show = function(value,index,ar){ print(value) }
>arr.forEach(show)
ab
cd
ef

2,MONGODB的模糊查詢

MongoDB模糊查詢方法示例:

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

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

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

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

查詢到有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)}  批量修改校驗(yàn)錯(cuò)誤日期數(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  #問題在這里,這個(gè)日期是時(shí)間戳,比如1440560826340的模式,請(qǐng)問下,在mongodb shell里面如何將時(shí)間戳變成字符串'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)報(bào)錯(cuò)提示有說明,mongodb shell里面是可以調(diào)用JavaScript腳本,這么說來,直接在窗口里面寫js腳本來實(shí)現(xiàn)就ok了,然后準(zhǔn)備拿一條數(shù)據(jù)來驗(yàn)證是否正確,結(jié)果成功了,驗(yàn)證腳本如下: 

主站蜘蛛池模板: 日本中文字幕网址 | 九一免费版在线观看 | 国产午夜精品久久久久久久蜜臀 | 在线看毛片的网站 | 国产成年人视频 | 国产一级毛片高清视频 | 国产精品免费麻豆入口 | 久久久久夜色精品国产老牛91 | 成人三级电影在线 | 久久久久久久久久美女 | 一级免费在线视频 | 成人免费午夜视频 | 亚洲最新色 | 羞羞视频免费观看入口 | 91av爱爱 | 看片一区二区三区 | 成人情欲视频在线看免费 | 国产免费最爽的乱淫视频a 毛片国产 | 红桃一区| 国产精品久久久久久久久久三级 | 粉嫩蜜桃麻豆免费大片 | av在线播放亚洲 | 五月婷婷第四色 | 欧美精品在线视频观看 | 国产精品美女久久久免费 | 亚洲网在线观看 | 亚洲精品无码不卡在线播放he | 色诱亚洲精品久久久久久 | 国产品久久 | 欧美一级黄带 | 涩涩操| 一级毛片真人免费播放视频 | 成人不卡在线观看 | 一级爱片| 日韩视频一区二区三区在线观看 | 国产免费小视频在线观看 | 草碰人人 | omofun 动漫在线观看 | 中国女警察一级毛片视频 | 国产一国产一级毛片视频 | 国产精品91久久久 |