mongoDB导出数据库所有集合内容到json文件

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下package starcLL.

网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下

package starcLL.webClient;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.bson.Document;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.MongoException;
import com.mongodb.ServerAddress;
import com.mongodb.client.ListIndexesIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

@Component
public class MongodbClient {

    private static String starcLL_mongodb_ip="填写你的ip";
    private static int starcLL_mongodb_port=填写你的端口;
    private static String starcLL_mongodb_name="填写你的数据库名"; 

    public static MongoClient mongoClient = null;
    public static MongoDatabase database = null;
    public static ServerAddress serverAddress = null;
    public static MongoCredential credentials = null;
    public static List<ServerAddress> addressLists = new ArrayList<ServerAddress>();
    public static List<MongoCredential> credentialsLists = new ArrayList<MongoCredential>();

    public static MongoClient getMongoClient() {
        if (null == mongoClient) {
            try {
                serverAddress = new ServerAddress(starcLL_mongodb_ip, starcLL_mongodb_port);
                addressLists.add(serverAddress);
                credentials = MongoCredential.createCredential("数据库", "用户名","密码".toCharArray());
                credentialsLists.add(credentials);
                return new MongoClient(addressLists,credentialsLists);
            } catch (MongoException e) {
                System.out.println(e.toString());
            }
        }
        return mongoClient;
    }



    public static void main(String[] args) throws IOException {
        MongoClient mongoClient=getMongoClient();
        Set<String> collectionNames=mongoClient.getDB(starcLL_mongodb_name).getCollectionNames();
        MongoDatabase mongoDatabase=mongoClient.getDatabase(starcLL_mongodb_name);
        System.out.println("开始...");

        int i=collectionNames.size();
        for (String cName:collectionNames) {
            JSONArray jsonArray=new JSONArray();
               System.out.println("获取集合:"+cName);
               MongoCursor<Document> cursor = mongoDatabase.getCollection(cName).find().iterator();
            try {
                while (cursor.hasNext()) {
                    jsonArray.add(cursor.next().toJson());
                }
            } finally {
                cursor.close();
            }
            File txt=new File("C:/Users/Administrator/Desktop/svc/"+i+".json");
            if(!txt.exists()){
               txt.createNewFile();
            }
            byte bytes[]=new byte[512];
            bytes=jsonArray.toString().getBytes();    
            int b=jsonArray.toString().length();    
            FileOutputStream fos=new FileOutputStream(txt);
            fos.write(bytes,0,b);
            fos.close();
            i--;
        }

    }
}
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
27天前
|
NoSQL MongoDB 数据库
MongoDB 删除集合
10月更文挑战第14天
26 1
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
215 0
|
18天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
14天前
|
缓存 NoSQL MongoDB
|
19天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
21天前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
13 1
|
29天前
|
存储 NoSQL Shell
MongoDB 创建数据库
10月更文挑战第12天
52 4
|
27天前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
28天前
|
存储 NoSQL MongoDB
MongoDB 创建集合
10月更文挑战第13天
28 1
|
29天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
25 2