我刚开始通过pyhton驱动器(pymongo)使用mongodb。当我发布新数据(实际上来自MySQL数据库)时,某些数据类型显示错误映射。例如,一些单位数字作为长整数插入,时间戳作为字符串插入。此外,作为YY-MM-DD存储在MySQL中的日期更改为YY-MM-DD 00:00:00(即添加时间)。这似乎是浪费空间,这是mongodb的正常程序或我应该以某种方式更改错误(?)映射的数据类型?
ps我在文档中搜索了mongodb,但找不到任何符合我查询的内容。
post = {
"title": video_title,
"ext_id": video_external_id,
"source": video_source,
"date_added": d1,
"views":{
"views_all": views_all,
"views_year": views_yr,
"views_day": views_day,
"views_week": views_wk,
"views_month": views_mo
},
"video_type": 0,
"hd": video_hd,
"features": featured,
"video_thumbs": video_thumbnails,
"video_main_thumb": video_main_thumbnail,
"length": video_length,
"length_sort": video_length,
"rating": {
"rating_all": rating_all,
"rating_year": rating_yr,
"rating_day": rating_day,
"rating_week": rating_wk,
"rating_month": rating_mo
}
}
posts = db.posts
post_id = video_list.insert(post)
答案 0 :(得分:0)
例如,一些单位数字插入为长整数
PyMongo将python 2.x作为BSON int64存储,无论值如何,python int作为BSON int32 或 BSON int64,具体取决于int的值。有关python类型到BSON类型的映射,请参阅the table here。
将时间戳作为字符串
插入
假设时间戳以ISO-8601格式传递,这是正确的。如果要将时间戳存储为BSON日期时间,请改为传递python datetime对象。
此外,作为YY-MM-DD存储在MySQL中的日期更改为YY-MM-DD 00:00:00(即添加时间)
BSON(MongoDB使用的存储格式)没有没有时间元素的日期类型。您的应用程序可以将日期转换为日期时间。