PowerShell을 사용하여 MongoDB 연결

Bilal Shahid 2023년6월20일
  1. Mdbc를 사용하여 PowerShell과 MongoDB 연결
  2. PowerShell과 함께 MongoDB를 직접 사용
  3. 결론
PowerShell을 사용하여 MongoDB 연결

MongoDB는 JSON 스타일로 표현된 문서로 구성된 데이터 저장 및 관리를 위한 NoSQL 솔루션을 도입했습니다. 이 문서 지향 언어는 Microsoft Windows에서 명령줄 셸 솔루션을 제공하는 PowerShell로 실행하기에 적합합니다.

이 기사에서는 MongoDB를 PowerShell과 연결하고 MongoDB 작업에 사용하는 다양한 방법을 살펴봅니다.

Mdbc를 사용하여 PowerShell과 MongoDB 연결

Mdbc는 MongoDB 작업을 PowerShell에서 쉽게 실행할 수 있도록 PowerShell에 친숙하게 만드는 데 사용되는 PowerShell 모듈입니다. Mdbc는 공식 MongoDB C# 드라이버를 기반으로 합니다.

Mdbc에 대해 배우려면 먼저 cmdlet의 개념에 익숙해져야 합니다. cmdlet은 PowerShell에서 실행되는 경량 명령입니다.

데이터 정리, 정규화, 백업 및 기타 MongoDB 작업을 쉽게 수행할 수 있는 표준 PowerShell 명령인 MongoDB용 cmdlet도 있습니다.

Mdbc를 사용하여 PowerShell에서 MongoDB를 실행하려면 아래에 설명된 일련의 간단한 단계를 따라야 합니다.

Mdbc 다운로드 및 설치

PowerShell Core용 Mdbc 및 버전 5.1, .NET 4.7.2는 PSGallery 모듈 Mdbc로 게시됩니다. 이 모듈을 설치하려면 다음 명령을 실행해야 합니다.

Install-Module Mdbc

PowerShell v3-v5.1, .NET 4.7.2의 경우 MdbcNuGet 패키지 Mdbc로 게시됩니다. 직접 다운로드하거나 NuGet 도구를 사용해야 합니다.

직접 다운로드하는 경우 .zip 파일로 저장하고 압축을 풀고 패키지 하위 디렉토리인 tools/Mdbc를 사용해야 합니다.

이제 Mdbc 디렉터리를 PowerShell 모듈 디렉터리에 복사합니다. PowerShell 모듈 경로를 가져오려면 $env:PSModulePath 명령을 실행합니다.

참고: 이 작업을 수행하려면 사용 중인 PowerShell 버전이 범위 내에서 정확해야 합니다. $PSVersionTable을 실행하여 버전을 확인할 수 있습니다.

Mdbc 모듈 가져오기

이제 PowerShell에서 다음 명령을 실행하여 Mdbc 모듈을 가져옵니다.

Import-Module Mdbc

도움말 살펴보기

다음 명령을 실행하여 Mdbc에 관한 도움말 자습서를 볼 수 있습니다.

help about_Mdbc
help Connect-Mdbc -Full
Get-Command -Module Mdbc

mongod가 실행 중인지 확인

mongod가 실행 중인지 확인하려면 일부 MongoDB 명령을 실행해 보십시오. 예를 들어 다음을 실행하여 새 컬렉션 test에 연결합니다.

Connect-Mdbc . test test -NewCollection

이제 컬렉션에 두 개의 문서를 테스트 데이터로 추가합니다.

@{_id = 1; value = 42}, @{_id = 2; value = 3.14} | Add-MdbcData

다음 명령을 사용하여 문서를 PowerShell 개체로 검색하고 이를 테이블로 표시합니다.

Get-MdbcData -As PS | Format-Table -AutoSize | Out-String

해당 ID로 특정 문서를 검색하려면 다음 명령을 쿼리 식으로 사용합니다.

$data = Get-MdbcData (New-MdbcQuery _id -EQ 1)
$data

문서의 값을 업데이트하려면 다음을 사용하십시오.

$data._id | Update-MdbcData (New-MdbcUpdate -Set @{value = 100})

값이 성공적으로 업데이트되었는지 확인하려면 다음 쿼리를 사용하십시오.

$doc = Get-MdbcData @{_id = 1}

다음을 실행하여 문서를 제거해 보십시오.

$doc | Remove-MdbcData

문서가 성공적으로 제거되었는지 확인하려면 다음 명령을 실행하여 문서 수를 계산합니다. 남은 문서가 하나뿐이므로 예상 출력은 1입니다.

Get-MdbcData -Count

PowerShell과 함께 MongoDB를 직접 사용

이전에는 Mdbc를 사용하여 MongoDB를 PowerShell과 연결하는 방법에 대해 논의했습니다. 그것 없이 어떻게 이것을 할 수 있는지 봅시다.

최신 MongoDB 엔진과 C# 드라이버를 다운로드하여 PowerShell로 실행해야 합니다. 다음 단계는 컴퓨터의 C: 드라이브에 C:\data\db라는 두 개의 폴더를 만드는 것입니다.

이제 MongoDB 설치의 bin 폴더에서 mongod.exe 파일을 시작할 수 있습니다. mongod를 실행하면 PowerShell 프롬프트를 독점합니다.

참고: .\mongod.exe --install --serviceName "Mongod" --serviceDisplayName "Mongo service deamon" --serviceDescription "MongoDB service" --logpath c:를 사용하여 설치하여 MongoDB를 서비스로 실행할 수도 있습니다. \데이터\몽고.로그

자세한 내용을 보려면 PowerShell에서 다음 명령을 입력할 수 있습니다.

mongod.exe help

이제 포트 27017에 대한 방화벽을 열어 MongoDB 데이터베이스에 대한 연결을 허용할 수 있습니다. MongoDB 엔진이 시작되고 이제 PowerShell을 열고 C# 드라이버를 로드하고 MongoDB 데이터베이스에 연결할 수 있습니다.

코드는 다음과 같습니다.

$mongoDriverPath = "c:\Program Files (x86)\MongoDB\CSharpDriver 1.7"
Add-Type -Path "$($mongoDriverPath)\MongoDB.Bson.dll"
Add-Type -Path "$($mongoDriverPath)\MongoDB.Driver.dll"

이 코드 스니펫은 컴퓨터의 경로에 따라 수정되어야 함을 기억해야 합니다.

다음 명령을 사용하여 데이터베이스와 컬렉션을 만들어 연결을 테스트해 보겠습니다.

$db = [MongoDB.Driver.MongoDatabase]::Create('mongodb://localhost/profiles');
$coll = $db['example1'];

MongoDB에서는 CSV, TSV 또는 JSON 파일을 사용하여 데이터를 가져올 수도 있습니다. 이에 대한 자세한 정보를 찾으려면 다음 명령을 실행할 수 있습니다(경로에 따라 조정).

PS C:\Program Files\MongoDB\Server\3.4\bin> .\mongoimport.exe --help

이제 BSON 문서를 생성하고 데이터베이스에 삽입하는 방법을 살펴보겠습니다.

[MongoDB.Bson.BsonDocument] $doc = @{
"_id"= [MongoDB.Bson.ObjectId]::GenerateNewId();
"FirstName"= "Ali";
"LastName"= "Raza";
"PhoneNumbers"= [MongoDB.Bson.BsonDocument] @{
'Home'= '11223344';
'Mobile'= '55667788';
};
};

이 문서를 삽입하려면 다음을 사용하십시오.

C:\> $coll.Insert( $doc)

다음 명령을 실행하여 업데이트 쿼리를 실행할 수 있습니다.

$query = [MongoDB.Driver.Builders.Query]::Matches( 'FirstName', "Ali")
$update = [MongoDB.Driver.Builders.Update]::Set("Email", 'ali123@abc.org'))
$coll.Update( $query , $update )

또는 읽기 작업에서 데이터를 검색하려면 다음과 같이 찾기 명령을 사용하십시오.

$query = [MongoDB.Driver.Builders.Query]::Matches( 'FirstName', "Ali")
$coll.Find( $query )

결론

MongoDB는 데이터베이스 작업을 빠르고 쉽게 수행할 수 있는 효율적인 문서 지향 NoSQL 솔루션을 제공합니다. MongoDB는 다양한 방법을 사용하여 PowerShell에서 실행할 수 있으며, 이 문서에서 그 중 두 가지 방법을 설명했습니다.

우리가 전달한 개념을 이해할 수 있기를 바랍니다!

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub