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의 경우 Mdbc
는 NuGet
패키지 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에서 실행할 수 있으며, 이 문서에서 그 중 두 가지 방법을 설명했습니다.
우리가 전달한 개념을 이해할 수 있기를 바랍니다!
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