MongoDB默認(rèn)使用_id字段作為主鍵,類型為ObjectId。ObjectId的生成有一定的規(guī)則,詳情可以查看這篇文章 - MongoDB深究之ObjectId。如果你在寫入數(shù)據(jù)庫的時(shí)候忘記寫入創(chuàng)建時(shí)間,不用擔(dān)心,完全可以通過_id字段的值來還原當(dāng)時(shí)的時(shí)間??聪旅娴膍ongodb script腳本:
db.getCollection('fees').find({}).forEach(function(item){ var _str = item._id.toString().substr(10, 8); var _date = new Date(Number(parseInt(_str, 16).toString() + '000')); item.createTime = _date; db.fees.save(item); })
forEach可以遍歷collection中的每一條數(shù)據(jù),然后逐一進(jìn)行修改。item._id.toString()會(huì)將整個(gè)ObjectId("...")當(dāng)成一個(gè)字符串來處理,然后從第10個(gè)字符開始,取8個(gè)字符,得到的是這條數(shù)據(jù)創(chuàng)建時(shí)的時(shí)間戳(不帶毫秒位數(shù))。在后面補(bǔ)上毫秒位數(shù)”000“,然后用Date()方法構(gòu)造成時(shí)間對(duì)象,賦值給createTime屬性。
以上所述是小編給大家介紹的深究從MongoDB的ObjectId中獲取時(shí)間信息,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
標(biāo)簽:自貢 泰安 無錫 雞西 興安盟 遼陽 廈門 玉林
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深究從MongoDB的ObjectId中獲取時(shí)間信息》,本文關(guān)鍵詞 深究,從,MongoDB,的,ObjectId,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。