为什么 mongodb 将我的日期格式更改为长数字,我该如何解决?
Why does mongodb change my date formats to long number and how do I fix it?
我一直在为我一直从事的项目存储一些虚拟数据。一些数据包括日期格式的日期。但不知何故,我看到它将格式更改为长数字,我不知道为什么。有人可以告诉我如何将格式转换回日期吗?我看到有人建议使用聚合 $todate。例如:
db.getCollection('my_list').aggregate([
{
$project: {
toDate: {
$toDate: "$published_date"
}
}
}
])
我已经尝试过上面的代码,但它不是永久更改。
我在 python 中作为日期时间格式得到的数据结果为: 9/11/2019 12:00 PM... 代码如下:
timestamp = '2019-11-09T12:00:12.000Z'
format = "%Y-%m-%dT%H:%M:%S.%fZ"
some_datetime_obj = datetime.datetime.strptime(timestamp, format)
Some_datetime_obj returns 一种日期时间格式。
但是当它进入mongodb时,我得到了一个NumberLong对象。
那么如何对数据库中的所有数据进行永久更改呢?
我明白了。我不知道为什么,但它是怎么发生的,因为我将我的数据帧转换为 json 格式,然后只插入到 mongodb.
旧代码:
records = json.loads(df.T.to_json()).values()
vid_client_db[VID_COL].insert_many(records)
新代码:
records = df.to_dict(orient='row')
vid_client_db[VID_COL].insert_many(records)
我一直在为我一直从事的项目存储一些虚拟数据。一些数据包括日期格式的日期。但不知何故,我看到它将格式更改为长数字,我不知道为什么。有人可以告诉我如何将格式转换回日期吗?我看到有人建议使用聚合 $todate。例如:
db.getCollection('my_list').aggregate([
{
$project: {
toDate: {
$toDate: "$published_date"
}
}
}
])
我已经尝试过上面的代码,但它不是永久更改。 我在 python 中作为日期时间格式得到的数据结果为: 9/11/2019 12:00 PM... 代码如下:
timestamp = '2019-11-09T12:00:12.000Z'
format = "%Y-%m-%dT%H:%M:%S.%fZ"
some_datetime_obj = datetime.datetime.strptime(timestamp, format)
Some_datetime_obj returns 一种日期时间格式。
但是当它进入mongodb时,我得到了一个NumberLong对象。 那么如何对数据库中的所有数据进行永久更改呢?
我明白了。我不知道为什么,但它是怎么发生的,因为我将我的数据帧转换为 json 格式,然后只插入到 mongodb.
旧代码:
records = json.loads(df.T.to_json()).values()
vid_client_db[VID_COL].insert_many(records)
新代码:
records = df.to_dict(orient='row')
vid_client_db[VID_COL].insert_many(records)