Bootstrap programmatically Mongodb for testing or mocking during development.
Works on all platforms which is due to the awesome mongodb-prebuilt package.
npm install mongo-memory
const MongoInMemory = require('mongo-memory')
const port = 8000
const dbPath = "./tempb/.data" // Mongodb placed some metadata
const mongoServerInstance = new MongoMemory(port, dbPath)
mongoServerInstance.start().then(server) => {
mongoServerInstance.getMongouri('myDatabaseName')
mongoServerInstance.getCollection('coll1')
mongoServerInstance.getDocument('myDatabaseName', 'coll1', "<id>")
mongoServerInstance.addDocument('myDatabaseName', 'coll1', { a: 1, b: 2 })
mongoServerInstance.addDirectoryOfCollections('myDatabaseName', '<path>')
})
mongoServerInstance.stop()
Mongodb storageEngine ephemeralForTest is used. The connection is created by the official mongodb package.
Most code was copied from mongo-in-memory but with significant improvements:
- Don't save metadata in node_modules
- Don't generate random folders
- Clean up of metadata must be handled by user
- 100% Promise API
- Update mongodb-prebuilt to the newest version
- Update dependencies and tests
- Gracefully shutdown Mongodb when execute stop
- Create recursively databasePath