Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mongodb和python设置正确的数据类型_Python_Mongodb - Fatal编程技术网

使用mongodb和python设置正确的数据类型

使用mongodb和python设置正确的数据类型,python,mongodb,Python,Mongodb,我刚刚开始通过pyhton驱动器(pymongo)使用mongodb。当我发布新数据(实际上来自MySQL数据库)时,某些数据类型的映射不正确。例如,某些单个数字作为长整数插入,时间戳作为字符串插入。此外,MySQL中存储为YY-MM-DD的日期更改为YY-MM-DD 00:00:00(即添加了时间)。这似乎是浪费空间,这是mongodb的正常过程还是我应该以某种方式更改映射不正确的数据类型(?)呢 ps我确实以mongodb的身份搜索了文档,但我找不到任何与我的查询匹配的内容 post = {

我刚刚开始通过pyhton驱动器(pymongo)使用mongodb。当我发布新数据(实际上来自MySQL数据库)时,某些数据类型的映射不正确。例如,某些单个数字作为长整数插入,时间戳作为字符串插入。此外,MySQL中存储为YY-MM-DD的日期更改为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)
例如,某些单个数字作为长整数插入

PyMongo将python 2.x存储为BSON int64,而不考虑值,python int存储为BSON int32或BSON int64,具体取决于int的值。有关python类型到BSON类型的映射,请参阅

时间戳作为字符串插入

假设时间戳是以ISO-8601格式传递的,这是正确的。如果要将时间戳存储为BSON datetime,请改为传递python datetime对象

此外,MySQL中存储为YY-MM-DD的日期更改为YY-MM-DD 00:00:00(即添加时间)

(MongoDB使用的存储格式)没有不带时间元素的日期类型。将日期转换为日期时间取决于应用程序