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--;
        }

    }
}
目录
相关文章
|
4月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
4月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
412 79
|
4月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
269 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
3月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
7月前
|
XML JSON API
如何在 Postman 中上传文件和 JSON 数据
如果你想在 Postman 中同时上传文件和 JSON 数据,本文将带你一步一步地了解整个过程,包括最佳实践和技巧,让你的工作更轻松。
|
8月前
|
数据库 数据安全/隐私保护
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
【YashanDB知识库】exp 导出数据库时,报错YAS-00402
|
7月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
9月前
|
开发工具 git 索引
怎么取消对project.private.config.json这个文件的git记录
通过以上步骤,您可以成功取消对 `project.private.config.json`文件的Git记录。这样,文件将不会被包含在未来的提交中,同时仍保留在您的工作区中。
259 28
|
9月前
|
关系型数据库 数据库连接 数据库
循序渐进丨MogDB 中 gs_dump 数据库导出工具源码概览
通过这种循序渐进的方式,您可以深入理解 `gs_dump` 的实现,并根据需要进行定制和优化。这不仅有助于提升数据库管理的效率,还能为数据迁移和备份提供可靠的保障。
277 6
|
8月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
583 0

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置