使用 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.ProcessBuilder
class用于创建一个操作系统进程(其中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.");
}
}
我有一个通过导入文档的 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.ProcessBuilder
class用于创建一个操作系统进程(其中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.");
}
}