從MongoDB的ObjectId中獲取時間信息


  MongoDB默認使用_id字段作為主鍵,類型為ObjectIdObjectId的生成有一定的規則,詳情可以查看這篇文章 - MongoDB深究之ObjectId。如果你在寫入數據庫的時候忘記寫入創建時間,不用擔心,完全可以通過_id字段的值來還原當時的時間。看下面的mongodb 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中的每一條數據,然后逐一進行修改。item._id.toString()會將整個ObjectId("...")當成一個字符串來處理,然后從第10個字符開始,取8個字符,得到的是這條數據創建時的時間戳(不帶毫秒位數)。在后面補上毫秒位數”000“,然后用Date()方法構造成時間對象,賦值給createTime屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM