美文网首页
mongo复制集合

mongo复制集合

作者: 奈斯凸米特 | 来源:发表于2019-10-08 17:49 被阅读0次

    将一个数据库中的某个集合复制到另一个数据库的集合中,原数据集合仍保留

    """
    将一个数据库中的某个集合转移到另一个数据库的某个集合中(可跨数据库,原数据库集合仍保留)
    """
    import pymongo
    import traceback
    
    
    def first_db_datas():
        # 第一个数据库
        ip_1 = input('请输入要转移的数据库ip:')
        client_1 = pymongo.MongoClient('mongodb://%s:27017' % ip_1)
        # 这里该数据库需要验证
        if ip_1 == '192.168.0.123':
            client_1['admin'].authenticate('用户名', '密码')
        print(client_1.list_database_names())
        db_name_1 = input('请输入要转移的数据库名:')
        db_1 = client_1[db_name_1]
        col_li = db_1.collection_names()  # 打印出该库下所有的集合
        print(col_li)
        collection_name_1 = input('请输入要转移的集合名:')
        while True:
            if collection_name_1 in col_li:
                break
            else:
                collection_name_1 = input('没有这个数据库,请重新输入:')
        collection_1 = db_1[collection_name_1]
    
        return collection_1.find()
    
    
    def second_db(datas):
        # 第二个数据库
        ip_2 = input('请输入目标数据库ip:')
        client_2 = pymongo.MongoClient('mongodb://%s:27017' % ip_2)
        db_name_2 = input('请输入目标数据库名:')
        db_2 = client_2[db_name_2]
        if ip_2 == '192.168.0.123':
            db_2.authenticate(name='用户名', password='密码', source='admin')
        collection_name_2 = input('请输入目标集合名(如果没有则创建):')
        collection_2 = db_2[collection_name_2]
        print('正在转移...')
        # 存入数据
            try:
            collection_2.insert_many(datas)
        except:
            print('程序出现如下错误,请检查!!!')
            print('*' * 10 + ' 错误信息 ' + '*' * 10)
            print(traceback.format_exc())
            print('*' * 26)
        else:
            print('转移完成!')
    
    
    if __name__ == '__main__':
        datas = first_db_datas()
        second_db(datas)
    
    

    相关文章

      网友评论

          本文标题:mongo复制集合

          本文链接:https://www.haomeiwen.com/subject/bafipctx.html