MongoDB默認(rèn)使用_id字段作為主鍵,類型為ObjectId。ObjectId的生成有一定的規(guī)則,詳情可以查看這篇文章 - MongoDB深究之ObjectId。如果你在寫入數(shù)據(jù)庫的時候忘記寫入創(chuàng)建時間,不用擔(dān)心,完全可以通過_id字段的值來還原當(dāng)時的時間??聪旅娴膍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()會將整個ObjectId("...")當(dāng)成一個字符串來處理,然后從第10個字符開始,取8個字符,得到的是這條數(shù)據(jù)創(chuàng)建時的時間戳(不帶毫秒位數(shù))。在后面補上毫秒位數(shù)”000“,然后用Date()方法構(gòu)造成時間對象,賦值給createTime屬性。
以上所述是小編給大家介紹的深究從MongoDB的ObjectId中獲取時間信息,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Node.js使用MongoDB的ObjectId作為查詢條件的方法
- MongoDB中ObjectId的誤區(qū)及引起的一系列問題
- python將MongoDB里的ObjectId轉(zhuǎn)換為時間戳的方法
- python根據(jù)時間生成mongodb的ObjectId的方法
- java查詢mongodb中的objectid示例
- 關(guān)于C#生成MongoDB中ObjectId的實現(xiàn)方法
- .NET Core中反解ObjectId