{"library":"mongodb-runner","title":"MongoDB Runner","description":"MongoDB Runner is a utility for programmatically or via CLI spinning up and managing MongoDB server instances and clusters specifically for testing purposes. It simplifies the process of testing code against various MongoDB topologies like standalone, replica sets, or sharded clusters, without requiring manual MongoDB installation or management. The current stable version is 6.7.7, and based on its development activity, it appears to have a regular release cadence, often aligning with new MongoDB server releases or bug fixes. A key differentiator is its ability to download and manage multiple MongoDB server versions locally, including enterprise versions, and to integrate with Docker. It offers both a convenient command-line interface via `npx` and a robust programmatic API for integration into test suites, abstracting away the complexities of `mongod` and `mongos` commands.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install mongodb-runner"],"cli":{"name":"mongodb-runner","version":null}},"imports":["import { MongoCluster } from 'mongodb-runner';","import { MongoCluster } from 'mongodb-runner';\nconst cluster = await MongoCluster.start(...);","import type { CliOptions } from 'mongodb-runner';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { MongoCluster } from 'mongodb-runner';\n\nasync function runTest() {\n  let cluster;\n  try {\n    // Start a standalone MongoDB instance\n    cluster = await MongoCluster.start({\n      topology: 'standalone',\n      version: '6.0.0' // Specify a MongoDB version\n    });\n\n    console.log(`MongoDB started: ${cluster.connectionString}`);\n\n    // Example: Connect with a simple MongoClient (requires 'mongodb' package)\n    // import { MongoClient } from 'mongodb';\n    // const client = new MongoClient(cluster.connectionString);\n    // await client.connect();\n    // console.log('Successfully connected to MongoDB!');\n    // await client.db('test').collection('mycollection').insertOne({ data: 'hello' });\n    // await client.close();\n\n  } catch (error) {\n    console.error('Failed to start or use MongoDB cluster:', error);\n  } finally {\n    if (cluster) {\n      console.log('Stopping MongoDB cluster...');\n      await cluster.close();\n      console.log('MongoDB cluster stopped.');\n    }\n  }\n}\n\nrunTest();","lang":"typescript","description":"This quickstart demonstrates how to programmatically start a standalone MongoDB instance, log its connection string, and then gracefully shut it down using the `mongodb-runner` API.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}