我正在运行一个Python脚本,该脚本连接到MongoDB数据库和时间流集合.我正在try 在时间流中插入新文档.
newdata = {"metadata": { "ser": "129031", "type": "data" }, "timestamp": {"$date" : timestamp}, "val": value}
result = cur_collection.insert_one(newdata)
问题是时间戳值应该是某种BSON格式.然而,无论我try 了什么,我都无法在Python中正确生成这个值.我所要做的就是生成当前的UTC时间戳并传递它.
此BSON值应为64位,自纪元以来为32位秒,千秒为32位.我可能可以手动生成这个,但很难相信
我try 过的一些事情包括:
#timestamp = bson.datetime_ms.DatetimeMS(time.time())
#timestamp = int(time.time()*1000.0)#time.time()
#Timestamp.Timestamp(datetime.now(), 1) #dt.now()
#timestamp = datetime.now()
#timestamp = datetime.datetime.now(pytz.utc)
#eastern = dateutil.tz.gettz('US/Eastern')
#timestamp = datetime.now(tz=eastern)
#timestamp = new Date().getTime()
timestamp = Timestamp(1412180887, 1)
我们需要一个整数,我得到的最好的是XXXXXXX.yyyyyyYY.如果我将整数移动32,也许将分数相乘并相加可以起作用.
当我try 运行该代码时,我收到错误
"'timestamp' must be present and contain a valid BSON UTC datetime value"