pymongo日期字段转换为未知日期格式

时间:2016-11-10 09:12:52

标签: python mongodb datetime pymongo

我使用python从一个集合中获取数据,我将处理它并将其存储在另一个集合中。在已处理的集合中,某些日期字段看起来不同,如日期(-61833715200000)

我使用下面的代码来获取数据并对其进行处理,然后我将这些值批量插入到新集合中。

fleet_managers = taximongo.users.aggregate([{ "$match": { "role" : "fleet_manager"}}])
fleet_managers = pd.DataFrame(list(fleet_managers))
fleet_managers['city_id'] = fleet_managers['region_id'].map({'57ff2e84f39e0f0444000004':'Chennai','57ff2e08f39e0f0444000003':'Hyderabad'})
pros_fleet_managers.insert_many(fleet_managers.to_dict('records'))

该集合如下所示:

{
    "_id" : ObjectId("58006678ee5e0e29c5000009"),
    "deleted_at" : NaN,
    "region_id" : "57ff2e84f39e0f0444000004",
    "reset_password_sent_at" : Date(-61833715200000),
    "current_sign_in_at" : ISODate("2016-10-14T06:07:55.568Z"),
    "last_sign_in_at" : ISODate("2016-10-14T06:07:45.574Z"),
    "remember_created_at" : Date(-61833715200000)        
}

这里做错了什么。谢谢。

我在投影字段时使用 $ ifNull 找到了解决方案。

fleet_managers = taximongo.users.aggregate([{ "$match": { "role" : "fleet_manager"}},{"$project":{'_id':1,'deleted_at':{ "$ifNull": [ "$deleted_at", "null" ] },
 'reset_password_sent_at':{ "$ifNull": [ "$reset_password_sent_at", "null" ] },                                  'region_id':1,'current_sign_in_at':1,'last_sign_in_at':1,'remember_created_at':{ "$ifNull": [ "$remember_created_at", "null" ] }}}])
fleet_managers = pd.DataFrame(list(fleet_managers))
fleet_managers['city_id'] = fleet_managers['region_id'].map({'57ff2e84f39e0f0444000004':'Chennai','57ff2e08f39e0f0444000003':'Hyderabad'})
pros_fleet_managers.insert_many(fleet_managers.to_dict('records'))

上面的代码给出了解决方案但我需要动态处理null或non存在,即从源集合中获取它时。

帮我解决这个问题。

0 个答案:

没有答案