gpt4 book ai didi

node.js - 将多个 csv 导入 mongodb

转载 作者:行者123 更新时间:2023-12-05 03:07:45 29 4
gpt4 key购买 nike

我知道如何在 shell/cmd 提示符下使用 mongoimport 或使用 GUI(例如 3T studio)将 CSV 文件作为集合导入。每行都是一个以标题行作为标题的文档。

例如一个csv文件名Data.csv标题及内容如下:

Example

如果只是针对一个文件,使用上面的方法可以很容易的完成。

请问有没有办法导入多个文件(几百个)?- 将每个文件作为一个集合分开-使用文件名作为集合名称-将所有内容导入为集合下的每个文档

最好是可以使用 nodejs,但也欢迎使用其他方法。

谢谢。

更新

for i in `ls ~/te/*.csv`;  do 
./mongoimport -d test $i --type=csv --headerline ;
done

const exec = require('child_process').exec;
var yourscript = exec('bash mongoin.sh /te',
(error, stdout, stderr) => {
console.log(`${stdout}`);
console.log(`${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});

最佳答案

在 bash 中:

for i in `ls ~/Desktop/*.csv`;  do 
./mongoimport -d local $i --type=csv --headerline ;
done

批量处理:

forfiles /p c:\te /m *.csv /c "cmd /c mongoimport -d local @file --type csv --headerline"

在哪里

 ~/Desktop/*.csv is the folder where the csv files are located.

local 是要导入的 mongodb 数据库。

集合的名称将由每个 csv 文件的基本文件名选取。

将 bash 代码的内容放在脚本中,比如 mymongo.sh:

for i in `ls $1`;  do 
./mongoimport -d local $i --type=csv --headerline ;
done

然后从 Node 调用它,代码如下:

const exec = require('child_process').exec;
var yourscript = exec('bash mymongo.sh /Users/niko/Desktop',
(error, stdout, stderr) => {
console.log(`${stdout}`);
console.log(`${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
}});

或在 Windows 上,使用 mymongo.bat 中的代码

const exec = require('child_process').exec;
var yourscript = exec('cmd /c c:/te/mymongo.bat',
(error, stdout, stderr) => {
console.log(`${stdout}`);
console.log(`${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
}});

关于node.js - 将多个 csv 导入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com