Modules@robinpath/mongo
mongo

@robinpath/mongo

0.1.5Node.jsPublic

MongoDB client with find, insert, update, delete, aggregation pipeline, indexing, and connection management

Mongo

MongoDB client with find, insert, update, delete, aggregation pipeline, indexing, and connection management

Package: @robinpath/mongo | Category: Database | Type: Utility

Authentication

mongo.connect {"uri": "mongodb://localhost:27017", "database": "mydb"}

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the mongo module when you need to:

  • Find documents -- Use mongo.find to perform this operation
  • Find one document -- Use mongo.findOne to perform this operation
  • Insert one document -- Use mongo.insertOne to perform this operation
  • Insert multiple documents -- Use mongo.insertMany to perform this operation
  • Update one document -- Use mongo.updateOne to perform this operation

Quick Reference

FunctionDescriptionReturns
connectConnect to MongoDB{name, connected, database}
findFind documentsDocuments
findOneFind one documentDocument or null
insertOneInsert one document{insertedId, acknowledged}
insertManyInsert multiple documents{insertedCount, insertedIds}
updateOneUpdate one document{matchedCount, modifiedCount}
updateManyUpdate many documents{matchedCount, modifiedCount}
deleteOneDelete one document{deletedCount}
deleteManyDelete many documents{deletedCount}
aggregateRun aggregation pipelineResults
countCount documentsCount
distinctGet distinct valuesDistinct values
collectionsList collectionsCollection names
createIndexCreate indexIndex name
objectIdGenerate or parse ObjectIdObjectId string
closeClose connectiontrue
closeAllClose all connectionstrue

Functions

connect

Connect to MongoDB

Module: mongo | Returns: object -- {name, connected, database}

mongo.connect {"uri": "mongodb://localhost:27017", "database": "mydb"}
ParameterTypeRequiredDescription
optionsobjectYes{uri, database, name}

find

Find documents

Module: mongo | Returns: array -- Documents

mongo.find "users" {"age": {"$gt": 18}} {"limit": 10}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectNoQuery filter
optionsobjectNo{sort, limit, skip, projection}
connectionstringNoConnection name

findOne

Find one document

Module: mongo | Returns: object -- Document or null

mongo.findOne "users" {"email": "alice@example.com"}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectYesQuery filter
connectionstringNoConnection name

insertOne

Insert one document

Module: mongo | Returns: object -- {insertedId, acknowledged}

mongo.insertOne "users" {"name": "Alice", "age": 30}
ParameterTypeRequiredDescription
collectionstringYesCollection
documentobjectYesDocument
connectionstringNoConnection name

insertMany

Insert multiple documents

Module: mongo | Returns: object -- {insertedCount, insertedIds}

mongo.insertMany "users" [{"name": "Alice"}, {"name": "Bob"}]
ParameterTypeRequiredDescription
collectionstringYesCollection
documentsarrayYesDocuments
connectionstringNoConnection name

updateOne

Update one document

Module: mongo | Returns: object -- {matchedCount, modifiedCount}

mongo.updateOne "users" {"_id": "..."} {"name": "Bob"}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectYesQuery filter
updateobjectYesUpdate ops or fields
connectionstringNoConnection name

updateMany

Update many documents

Module: mongo | Returns: object -- {matchedCount, modifiedCount}

mongo.updateMany "users" {"active": false} {"$set": {"archived": true}}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectYesQuery filter
updateobjectYesUpdate ops
connectionstringNoConnection name

deleteOne

Delete one document

Module: mongo | Returns: object -- {deletedCount}

mongo.deleteOne "users" {"_id": "..."}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectYesQuery filter
connectionstringNoConnection name

deleteMany

Delete many documents

Module: mongo | Returns: object -- {deletedCount}

mongo.deleteMany "users" {"archived": true}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectYesQuery filter
connectionstringNoConnection name

aggregate

Run aggregation pipeline

Module: mongo | Returns: array -- Results

mongo.aggregate "orders" [{"$group": {"_id": "$status", "count": {"$sum": 1}}}]
ParameterTypeRequiredDescription
collectionstringYesCollection
pipelinearrayYesPipeline stages
connectionstringNoConnection name

count

Count documents

Module: mongo | Returns: number -- Count

mongo.count "users" {"active": true}
ParameterTypeRequiredDescription
collectionstringYesCollection
filterobjectNoQuery filter
connectionstringNoConnection name

distinct

Get distinct values

Module: mongo | Returns: array -- Distinct values

mongo.distinct "users" "country"
ParameterTypeRequiredDescription
collectionstringYesCollection
fieldstringYesField name
filterobjectNoQuery filter
connectionstringNoConnection name

collections

List collections

Module: mongo | Returns: array -- Collection names

mongo.collections
ParameterTypeRequiredDescription
connectionstringNoConnection name

createIndex

Create index

Module: mongo | Returns: string -- Index name

mongo.createIndex "users" {"email": 1} {"unique": true}
ParameterTypeRequiredDescription
collectionstringYesCollection
keysobjectYesIndex keys {field: 1
optionsobjectNo{unique, sparse, ...}
connectionstringNoConnection name

objectId

Generate or parse ObjectId

Module: mongo | Returns: string -- ObjectId string

mongo.objectId
ParameterTypeRequiredDescription
idstringNoExisting ID string or omit for new

close

Close connection

Module: mongo | Returns: boolean -- true

mongo.close
ParameterTypeRequiredDescription
connectionstringNoConnection name

closeAll

Close all connections

Module: mongo | Returns: boolean -- true

mongo.closeAll
ParameterTypeRequiredDescription
(none)NoCall with no arguments

Error Handling

All functions throw on failure. Common errors:

ErrorCause
MongoDB connection "..." not found. Call mongo.connect first.Check the error message for details
@desc "Find and validate result"
do
  set $result as mongo.find "users" {"age": {"$gt": 18}} {"limit": 10}
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. Create a new item with createIndex

Create a new resource and capture the result.

set $result as mongo.createIndex "users" {"email": 1} {"unique": true}
print "Created: " + $result

2. Create and update workflow

Create an item and then update it.

@desc "Create index and update one"
do
  set $created as mongo.createIndex "users" {"email": 1} {"unique": true}
  # Update the created item
  mongo.updateOne "users" {"_id": "..."} {"name": "Bob"}
enddo

3. Multi-step Mongo workflow

Chain multiple mongo operations together.

@desc "Connect, find, and more"
do
  set $r_connect as mongo.connect {"uri": "mongodb://localhost:27017", "database": "mydb"}
  set $r_find as mongo.find "users" {"age": {"$gt": 18}} {"limit": 10}
  set $r_findOne as mongo.findOne "users" {"email": "alice@example.com"}
  print "All operations complete"
enddo

4. Safe connect with validation

Check results before proceeding.

@desc "Connect and validate result"
do
  set $result as mongo.connect {"uri": "mongodb://localhost:27017", "database": "mydb"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • mysql -- MySQL module for complementary functionality
  • postgres -- PostgreSQL module for complementary functionality
  • redis -- Redis module for complementary functionality
  • supabase -- Supabase module for complementary functionality
  • firebase -- Firebase module for complementary functionality

Versions (1)

VersionTagPublished
0.1.5latest1 months ago
Install
$ robinpath add @robinpath/mongo

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.5
LicenseMIT
Unpacked Size11.7 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Category

data