Verbinden Sie MongoDB mit PowerShell

Bilal Shahid 20 Juni 2023
  1. Verbinden Sie MongoDB mit PowerShell mit Mdbc
  2. Verwenden Sie MongoDB direkt mit PowerShell
  3. Abschluss
Verbinden Sie MongoDB mit PowerShell

MongoDB stellt eine NoSQL-Lösung für die Datenspeicherung und -verwaltung vor, die aus Dokumenten besteht, die im JSON-Stil dargestellt werden. Diese dokumentenorientierte Sprache eignet sich für die Ausführung mit PowerShell, das eine Befehlszeilen-Shell-Lösung unter Microsoft Windows bietet.

Dieser Artikel befasst sich mit verschiedenen Möglichkeiten, MongoDB mit PowerShell zu verbinden und für MongoDB-Aufgaben zu verwenden.

Verbinden Sie MongoDB mit PowerShell mit Mdbc

Mdbc ist ein PowerShell-Modul, das verwendet wird, um MongoDB-Operationen PowerShell-freundlich zu machen, um sie einfach auf PowerShell auszuführen. Mdbc basiert auf dem offiziellen MongoDB C#-Treiber.

Um Mdbc kennenzulernen, müssen Sie sich zunächst mit dem Konzept der Cmdlets vertraut machen. Cmdlets sind einfache Befehle, die auf PowerShell ausgeführt werden.

Es gibt auch Cmdlets für MongoDB, bei denen es sich um Standard-PowerShell-Befehle handelt, die die Durchführung von Datenbereinigungen, Normalisierungen, Sicherungen und anderen MongoDB-Vorgängen vereinfachen.

Um MongoDB auf PowerShell mit Mdbc auszuführen, müssen Sie eine Abfolge einfacher Schritte befolgen, die unten erklärt werden.

Holen und installieren Sie Mdbc

Mdbc für PowerShell Core und Version 5.1, .NET 4.7.2 wird als PSGallery-Modul Mdbc veröffentlicht. Um dieses Modul zu installieren, müssen Sie den folgenden Befehl ausführen:

Install-Module Mdbc

Für PowerShell v3-v5.1, .NET 4.7.2 wird Mdbc als NuGet-Paket Mdbc veröffentlicht. Sie müssen es direkt herunterladen oder die NuGet-Tools verwenden.

Wenn Sie es direkt herunterladen, müssen Sie es als .zip-Datei speichern, entpacken und das Paket-Unterverzeichnis tools/Mdbc verwenden.

Kopieren Sie nun das Verzeichnis Mdbc in beliebige PowerShell-Modulverzeichnisse. Um den PowerShell-Modulpfad abzurufen, führen Sie diesen Befehl $env:PSModulePath aus.

Hinweis: Die Version von PowerShell, die Sie verwenden, muss innerhalb des Bereichs genau sein, damit dies funktioniert. Sie können die Version überprüfen, indem Sie $PSVersionTable ausführen.

Importieren Sie das Mdbc-Modul

Führen Sie nun den folgenden Befehl in PowerShell aus, um das Modul Mdbc zu importieren.

Import-Module Mdbc

Werfen Sie einen Blick in die Hilfe

Sie können die folgenden Befehle ausführen, um Hilfe-Tutorials zu Mdbc anzuzeigen.

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

Stellen Sie sicher, dass mongod ausgeführt wird

Um sicherzustellen, dass mongod ausgeführt wird, versuchen Sie, einige MongoDB-Befehle auszuführen. Führen Sie beispielsweise Folgendes aus, um eine Verbindung zu einer neuen Sammlung test herzustellen.

Connect-Mdbc . test test -NewCollection

Fügen Sie der Sammlung nun zwei Dokumente als Testdaten hinzu.

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

Rufen Sie mit dem folgenden Befehl die Dokumente als PowerShell-Objekte ab und zeigen Sie sie als Tabelle an.

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

Um ein bestimmtes Dokument anhand seiner ID abzurufen, verwenden Sie den folgenden Befehl als Abfrageausdruck.

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

Verwenden Sie Folgendes, um den Wert des Dokuments zu aktualisieren:

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

Um zu überprüfen, ob der Wert erfolgreich aktualisiert wurde, verwenden Sie die folgende Abfrage:

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

Versuchen Sie, das Dokument zu entfernen, indem Sie Folgendes ausführen:

$doc | Remove-MdbcData

Um zu bestätigen, dass das Dokument erfolgreich entfernt wurde, führen Sie den folgenden Befehl aus, um die Anzahl der Dokumente zu zählen. Die erwartete Ausgabe ist 1, da nur noch ein Dokument übrig ist.

Get-MdbcData -Count

Verwenden Sie MongoDB direkt mit PowerShell

Zuvor haben wir die Verbindung von MongoDB mit PowerShell über Mdbc besprochen. Lassen Sie uns sehen, wie wir dies ohne sie tun können.

Sie müssen die neueste MongoDB-Engine und den C#-Treiber herunterladen, um sie mit PowerShell auszuführen. Der nächste Schritt besteht darin, zwei Ordner auf dem Laufwerk C: Ihres Computers zu erstellen, C:\data\db.

Nun können Sie die Datei mongod.exe im Ordner bin Ihrer MongoDB-Installation starten. Wenn Sie mongod ausführen, wird es die PowerShell-Eingabeaufforderung monopolisieren.

Hinweis: Sie können MongoDB auch als Dienst ausführen, indem Sie es mit .\mongod.exe --install --serviceName "Mongod" --serviceDisplayName "Mongo service deamon" --serviceDescription "MongoDB service" --logpath c installieren: \data\Mongo.log

Für weitere Informationen können Sie den folgenden Befehl in PowerShell eingeben:

mongod.exe help

Jetzt können Sie Ihre Firewall für Port 27017 öffnen, um Verbindungen zur MongoDB-Datenbank zuzulassen. Die MongoDB-Engine wird gestartet, und Sie können jetzt PowerShell öffnen, die C#-Treiber laden und eine Verbindung zur MongoDB-Datenbank herstellen.

Der Code lautet wie folgt:

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

Denken Sie daran, dass dieses Code-Snippet entsprechend dem Pfad auf Ihrem Computer geändert werden muss.

Lassen Sie uns die Verbindung testen, indem Sie mit den folgenden Befehlen eine Datenbank und eine Sammlung erstellen:

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

MongoDB ermöglicht auch den Import von Daten mithilfe einer CSV-, TSV- oder JSON-Datei. Um weitere Informationen dazu zu erhalten, können Sie den folgenden Befehl ausführen (anpassen an Ihren Pfad).

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

Lassen Sie uns nun sehen, wie wir ein BSON-Dokument erstellen und in unsere Datenbank einfügen können.

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

Verwenden Sie zum Einfügen dieses Dokuments Folgendes:

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

Der folgende Befehl kann ausgeführt werden, um eine Aktualisierungsabfrage auszuführen:

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

Oder wenn Sie die Daten in einem Lesevorgang abrufen möchten, verwenden Sie den Befehl Suchen wie folgt:

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

Abschluss

MongoDB bietet eine effiziente dokumentenorientierte NoSQL-Lösung, um Datenbankoperationen schnell und einfach durchzuführen. MongoDB kann auf PowerShell mit verschiedenen Methoden ausgeführt werden, von denen wir zwei in diesem Artikel erläutert haben.

Wir hoffen, Sie konnten die von uns gelieferten Konzepte verstehen!

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