当前位置: 首页 > 知识库问答 >
问题:

有没有办法将数据从csv保存到mongob?

钱稳
2023-03-14

我有一个CSV文件,我正在尝试导入MongoDB数据库中的CSV文件。不幸的是,这种体验并没有像我希望的那样工作。CSV文件的内容不相关,因为当我使用MongoDB Compass手动导入它时,没有问题,它按我想要的方式出现。因此,如果可能的话,我试图使用Java和Spring Boot将其从本地文件夹保存到MongoDB,但我找不到任何关于如何这样做的好建议或解释。

我用的是Spring Boot 2.6.3和Java11。

非常感谢。

共有1个答案

丁经国
2023-03-14
public class MongoImportUtil {  
    public static void main(String[] args) {  
        String Host = "localhost";  
        String Port = "27017";  
        String DB = "userDemo";  
        String CollectionName = "users";  
        String FileName = "D:/Test.csv";  

// Without Credential  
        String command = "C:\\Program Files\\MongoDB\\Server\\5.0\\bin\\mongoimport.exe --host " + Host + " --port " + Port + " --db " + DB + " --collection " + CollectionName + "  --headerline --type=csv --file "+ FileName;  

// With Credential 
    /*   String command = "C:\\Program Files\\MongoDB\\Server\\5.0\\bin\\mongoimport.exe --host " + Host + " --port " +  Port  + " --db " + DB + " --collection " +  CollectionName  + "--authenticationDatabase admin --username " + user + "  --password  " +  password +  " --headerline  --type=csv  --file "+ FileName; */  
 
        try {  
            Process process = Runtime.getRuntime().exec(command);  
            System.out.println("Imported csv into Database");  
        } catch (Exception e) {  
            System.out.println("Error executing " + command + e.toString());  
        }  
    }  
} 
 类似资料:
  • 我正在建立一个学生时间表生成器,我需要一种方法来产生一个以上的解决方案。有什么方法可以节省可行的分数或xhard/ysoft的分数吗? 我需要能够输出多个潜在的时间表,这样学生将有一个时间表的选择,而不是另一个,如果出于任何原因,他们不想要“最好的”时间表(也许他们不喜欢其中一个教授,也许他们不想要上午8点的课,无论什么) 我最初的想法是使用bestSolutionChanged事件侦听器省去所有

  • 问题内容: 可以将数据表以某种方式传递到SQL Server 2005或2008吗? 我知道将XML传递到SP的标准方法。而且,可以通过某种方式轻松地将数据表转换为XML。 将.NET对象传递到SP中怎么办?那可能吗 ? 我记得曾经听说过SQL和CLR在2008年以某种方式一起工作,但我从未理解。。也许这意味着您可以在存储过程中引用.NET对象? 问题答案: 您可以在SQL中创建用户定义的表类型。

  • 问题内容: 如标题所述,很简单:您可以仅使用Java命令来截取屏幕截图并保存吗?或者,我是否需要使用特定于操作系统的程序来截取屏幕截图,然后将其从剪贴板中拿出来? 问题答案: 你实际上可以用来“创建一个包含从屏幕读取的像素的图像”。然后,你可以将该映像写入磁盘上的文件。 我只是尝试了一下,整个过程最终像这样:

  • 问题内容: 我正在尝试调试继承的程序。该程序包含字符串,数组列表和集合,类型之间的大量转换,并且我需要执行一些字符串操作(等)。 数据打印到控制台时 看起来 像字符串(例如,一行文本,如或),但是我的代码因各种错误而出错,这表明我强制转换为String的代码无法正常工作。 我想尝试弄清楚传入的数据类型,并留下我的方法来验证程序是否按预期运行。有什么办法可以找到Java中的字段类型?在一个理想的世界

  • 我希望从C中的浮点数组中计算中值: FloatArray包含一个常规的C浮点数组。 我正在使用,但想知道是否有像这样的工具可以处理数据?现在,我正在制作一个副本,然后在扔掉副本之前执行。如果数据没有像这样的东西,是否有更有效的方法使用复制步骤来计算信息,从而避免潜在的额外O(n)循环?也许性能影响可以忽略不计?我的数组大小可能在20亿量级。

  • 通过这个链接“将Java Process/ProcessBuilder的OutputStream作为管道写入”,并进行研究,我没有找到一种方法来指定从getOutputStream()写入流程输出的路径。 在代码中,exec运行一个进程,将两个文件的结果连接起来,现在我想将结果保存在一个新文件中。但我找不到原因,因为进程中的getOutPutStream对象只有一个以int[]为参数的构造函数wr