使用 csv 文件 (pymongo) 将数据更新(添加新字段)到 MongoDB 个文档

Updating data (adding new fields) to MongoDB documents using a csv file (pymongo)

我有一个通过导入文档的 csv 创建的小基础,但在与我的原始 csv 聚合后,出现了许多新字段。如何在添加新字段和索引唯一的文档的同时将新文档导入数据库?

我的 collection 在 collection 中的索引:

[('date', 1), ('country', 1), ('province/state', 1), unique=True]

位于数据库中的数据片段:

_id:601d00ccbf6246e8f0e37460
date:"2021-02-02"
province/state:"AK"
confirmed:52775
probable_cases:NaN
total_test_results:1511785
country:"US"
and many more fields

导入新的 csv 文件后需要获取的 collection 中的数据(例如):

_id:601d00ccbf6246e8f0e37460
date:"2021-02-02"
province/state:"AK"
confirmed:52775
probable_cases:NaN
total_test_results:1511785
country:"US"
vacctination:1234
daily_vaccinations_per_million:NaN
and many more fields

我还没有找到如何做到这一点,但如果有人知道,你可以说说在哪个方向移动或举个例子。

And you have a small example, even in Java it will be by the way?

这里是Java中的示例代码(这是一个用户定义的方法,doImport),并且导入了JSON从文件到 MongoDB 数据库集合的数据。 java.lang.ProcessBuilderclass用于创建一个操作系统进程(其中mongoimport为运行)。

private static void doImport() 
        throws IOException, InterruptedException {

    final String [] cmd =  { "mongoimport.exe", "--db=testdb", "--collection=testcoll", "--file=N:\files\myFile.json" };

    ProcessBuilder pb = new ProcessBuilder(cmd);
    pb.redirectErrorStream(true);
    Process process = pb.start();
    
    try(BufferedReader in = new BufferedReader(
            new InputStreamReader(process.getInputStream()))) {
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
        process.waitFor();
        System.out.println("Done.");
    }
}