我有一个带有日期字段的集合。该集合的示例json格式如下:
{
"processID" : "1410449146441-3-8863e29e0055",
"department" : "ABC",
"price" : 9.99,
"unitSold" : 19,
"date" : 1410449146442
},
{
"processID" : "14104491tf-alhb-8863e29e0055",
"department" : "XYZ",
"price" : 19.99,
"unitSold" : 21,
"date" : 1410985985985
}
我需要将此日期字段转换为ISOdate格式,以便我可以从中提取年,月和日。我需要在pymongo中做到这一点。
我尝试将其作为datetime.datetime.fromtimestamp({"$divide": ["$date", 1e3]})
,但得到了错误" TypeError:需要浮点数"
请你告诉我在pymongo中做到这一点的好方法
答案 0 :(得分:0)
您收到错误消息是因为fromtimestamp是Python函数,而不是Mongo DB函数。 .fromtimestamp期望float而不是您提供了一个dict。 使用datetime模块在遍历游标时进行转换:
import datetime
for x in cursor:
timestamp = datetime.datetime.fromtimestamp(x.get("date")/1000)
# timestamp = object of type datetime.
注意::如果不将long值除以1000,则会出现“年份不在范围内”的错误。