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!
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