특정 폴더 안에 있는 여러 json 파일들을 한번에 mongoDB에 import해보자.
코드는 아래와 같다.
# 상위 로그 데이터 경로
<#
testlog --- a.json
|
--- b.json
|
--- c.json
#>
$path = 'testlog 경로'
Get-ChildItem $path -File | % {
if($_.Name.Contains(".json") -or $_.Name.Contains(".JSON"))
{
$params = '--db', 'test', '--collection', 'test', '--type', 'json', '--jsonArray', $_.FullName
mongoimport $params
}
}
# 상위 로그 데이터 경로
<#
testlog --- A --- 1.json
| |
| --- 2.json
|
--- B --- 3.json
| |
| --- 4.json
|
--- C --- 5.json
|
--- 6.json
#>
$path = 'C:\Users\A0122023334\Desktop\testlog'
Get-ChildItem $path -Directory | % {
# 각 날짜 폴더 안의 모든 파일 탐색
$tmp = $_.GetFiles()
for($i = 0; $i -lt $tmp.Count; $i++)
{
# JSON 파일 선택
if($tmp[$i].Name.Contains(".json") -or $tmp[$i].Name.Contains(".JSON"))
{
$params = '--db', 'test', '--collection', 'test', '--type', 'json', '--jsonArray', $tmp[$i].FullName
mongoimport $params
}
}
}
위 스크립트 실행하면 나같은 경우에는 에러처럼 빨간 메세지가 잔뜩 출력되었다.
근데 자세히 보면 import는 성공적으로 수행되었으므로 무시한다.
혹시 몰라서 새 collection 만들어서 데이터 제대로 들어가는지 확인했는데 제대로 들어가더라 😎