MongoDB-ISODate

时间:2018-06-19 17:51:31

标签: r mongodb

我正在编写一个RScript,以将当前系统时间戳与MongoDB上次更新的时间戳进行比较。 我的方法:

  1. db.runs.find().sort({'id':-1}).limit(1)-给出最近更新记录的对象ID
  2. ObjectId("5b27f3957cf77b51d60c1502").getTimeStamp()-输出:ISODate(“ 2018-06-18T18:01:57Z”)

这些步骤是否可以在 R 中编写脚本,以便我可以将此ISODate与当前系统时间戳进行比较?还是有其他方法可以达到此要求?

1 个答案:

答案 0 :(得分:0)

此功能对我有用:

library(base)

get_date_from_objectid <- function(oid) {
  #Get first 8 Hexa characters from ObjectId corresponding with the datetime:
  datetime_Hex <- paste("0x", substr(oid, 0, 8), sep = "")

  #Convert from Hexa to Decimal using base::strtoi():
  datetime_Decimal <- strtoi(c(datetime_Hex))

  #Get the date from de the decimal value:
  date = as.Date.POSIXct(datetime_Decimal, origin="1970-01-01")
  return(date)
}


#Example
objectId= "5dfce6ad859e645780f88b53"
get_date_from_objectid(objectId)

#This will return "2019-12-20"