问题:使用mongo存储数据的时候,出现错误DuplicateKeyError: E11000 duplicate key error collection

    for i in all_data:
        down_list = []
        now_time = utility.get_this_time()
        for one_data in i:
            on_list = []
            new_list = async_real_time_data(one_data)
            for i in new_list:
                # 统一修改时间  或者  统一添加新时间
                i.update(update_time=now_time)
            on_list += new_list
        print on_list

        down_list += on_list
    print down_list

    mongo_manager.insert_many("temperature_predict_data", down_list)

提示内容是这样的:(使用的是python2)

DuplicateKeyError: E11000 duplicate key error collection:........index: _id_ dup key: { : ObjectId('5a425e8187ea64b6c051567a') }

百度后,发现有的人是因为for循环之类的错误,(我的问题是在两次for循环中都在外面执行了list +=)

修改后的代码是这样:(把for循环中要添加的数据统一到最里面的for循环中添加,就解决了这个问题)

down_list = []
    for i in all_data:
        now_time = utility.get_this_time()
        for one_data in i:
            new_list = async_real_time_data(one_data)
            for i in new_list:
                # 统一修改时间  或者  统一添加新时间
         
                i["update_time"] = now_time
                down_list.append(i)
    mongo_manager.insert_many("temperature_predict_data", down_list)

 

你可能感兴趣的:(python项目开发,Mongodb)