Powershell로 MongoDB에 여러 JSON 파일 Import하기

­3zu·2023년 5월 12일
0

Mongo디비디비딥

목록 보기
3/4
post-thumbnail

여러 JSON 파일 Import 하기

특정 폴더 안에 있는 여러 json 파일들을 한번에 mongoDB에 import해보자.

코드는 아래와 같다.

한 폴더 안에 JSON 파일

# 상위 로그 데이터 경로
<#
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
    }
}

한 폴더 안에 여러 폴더 안에 JSON 파일

# 상위 로그 데이터 경로
<#
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 만들어서 데이터 제대로 들어가는지 확인했는데 제대로 들어가더라 😎

0개의 댓글