代码存在一些问题:

  1. 在导入pymongo模块时,应该使用from pymongo import MongoClient,而不是import pymongo。
  2. 在判断历史总表中是否已经包含该数据时,应该使用find_one()方法,而不是findone()方法。
  3. 在更新数据时,应该使用update_one()方法,而不是updateone()方法。
  4. 在插入数据时,应该使用insert_one()方法,而不是insertone()方法。
  5. 在获取要合并的数据时,应该同时获取两个集合中的数据,而不是只获取一个集合中的数据。

修改后的代码如下:

from pymongo import MongoClient

def mergedata(dbname1, collname1, dbname2, collname2): # 连接数据库 client = MongoClient('localhost', 27017) # 获取要操作的集合 coll1 = client[dbname1][collname1] coll2 = client[dbname2][collname2] # 获取要合并的数据 data1 = coll1.find() data2 = coll2.find() # 遍历要合并的数据 for item in data1: # 判断历史总表中是否已经包含该数据 exist = coll2.find_one({'id': item['id']}) if exist: # 如果已经包含该数据,则更新去重处理 coll2.update_one({'id': item['id']}, {'$set': item}) else: # 如果历史总表中不包含该数据,则插入该数据 coll2.insert_one(item)

if name == 'main': dbname1 = '客户总表' collname1 = '4月26' dbname2 = '历史总表' collname2 = '历史客户总表' # 调用方法合并数据 mergedata(dbname1, collname1, dbname2, collname2

检查一下以下代码是否正确import pymongodef mergedatadbname1 collname1 dbname2 collname2 # 连接数据库 client = pymongoMongoClientlocalhost 27017 # 获取要操作的集合 coll1 = clientdbname1collname1 coll2 = clientdbname

原文地址: https://www.cveoy.top/t/topic/d56w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录