Home

Awesome

PSGallery

Mdbc

MongoDB Cmdlets for Windows PowerShell 5.1 and PowerShell Core

The PowerShell module based on the official MongoDB C# driver

Quick start

Step 1: Get and install Mdbc from the PSGallery:

Install-Module Mdbc

Step 2: Import the module:

Import-Module Mdbc

Step 3: See help and available commands:

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

Step 4: Make sure mongod is running and try some commands:

# Load the module
Import-Module Mdbc

# Connect the new collection test.test
Connect-Mdbc . test test -NewCollection

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

# Get documents as PS objects
Get-MdbcData -As PS | Format-Table

# Get the document by _id
Get-MdbcData @{_id = 1}

# Update the document, set 'value' to 100
Update-MdbcData @{_id = 1} @{'$set' = @{value = 100}}

# Get the document again, 'value' is 100
$doc = Get-MdbcData @{_id = 1}

# Remove the document
$doc | Remove-MdbcData

# Count documents, 1
Get-MdbcData -Count

Next Steps

Read cmdlet help topics and take a look at examples for some basic use cases.

Use Mdbc.ArgumentCompleters.ps1 for database and collection name completion and property completion. You may install this script from the PSGallery as Mdbc.ArgumentCompleters:

Install-Script Mdbc.ArgumentCompleters

Use Update-MongoFiles.ps1, either for making some test data or for tracking file changes in practice.

See also tests, for example:

Driver methods and module commands

DriverModuleOutput
Client
MongoClientConnect-Mdbc$Client $Database $Collection
GetDatabaseGet-MdbcDatabasedatabase(s)
DropDatabaseRemove-MdbcDatabasenone
TransactionsUse-MdbcTransaction-
WatchWatch-MdbcChange -Clientcursor
Database
RunCommandInvoke-MdbcCommanddocument
GetCollectionGet-MdbcCollectioncollection(s)
CreateCollectionAdd-MdbcCollectionnone
RenameCollectionRename-MdbcCollectionnone
DropCollectionRemove-MdbcCollectionnone
WatchWatch-MdbcChange -Databasecursor
Collection
InsertOneAdd-MdbcDatanone
InsertManyAdd-MdbcData -Manynone
FindGet-MdbcDatadocuments
CountDocumentsGet-MdbcData -Countcount
DistinctGet-MdbcData -Distinctvalues
FindOneAndDeleteGet-MdbcData -Removeold document
FindOneAndReplaceGet-MdbcData -Setold or new document
FindOneAndUpdateGet-MdbcData -Updateold or new document
DeleteOneRemove-MdbcDatanone or info (-Result)
DeleteManyRemove-MdbcData -Manynone or info (-Result)
ReplaceOneSet-MdbcDatanone or info (-Result)
UpdateOneUpdate-MdbcDatanone or info (-Result)
UpdateManyUpdate-MdbcData -Manynone or info (-Result)
AggregateInvoke-MdbcAggregatedocuments
WatchWatch-MdbcChange -Collectioncursor

See also