mongo-replica-set

0.3.0 • Public • Published

mongo-replica-set

Command-line tool and API to quickly setup a MongoDB host or replica set for development purposes, based on the official tutorial.

Installation

To use the API:

$ npm install mongo-replica-set

To use the command-line tool install globally:

$ npm install -g mongo-replica-set

Usage

Command-line

  Usage: mongo-replica-set [options]
 
  Options:
 
    -h, --help           output usage information
    -V, --version        output the version number
    -d, --data [folder]  Base folder for data storage (Default: auto-created folder in system temp folder)
    -n, --num [num]      No. of instances to launch (Default: 3)
    -p, --port [port]    Starting port number for instances (Default: 27117)
    -v, --verbose        Verbose output

Thus for a basic setup involving 3 mongod instances simply run:

$ mongo-replica-set
>>> Replica set ready: 127.0.0.1:27117, 127.0.0.1:27118, 127.0.0.1:27119

You can then (in a new terminal window) use mongo to connect to the instances, which should be running at localhost:27117, localhost:27118 and localhost:27119 respectively. Eg:

$ mongo --port 27117
MongoDB shell version: 2.6.5
connecting to: 127.0.0.1:27117/test
rs_515_1429031406166:PRIMARY> show dbs;
admin  (empty)
local  0.281GB
rs_515_1429031406166:PRIMARY>

Press CTRL+C in the original window to terminate the instances and clean up the replica set.

Note: If any errors occur during initialisation the command will exit and clean up the replica set instances and data folders.

Single host

If you specify the number of hosts as 1 then a single non-replica-set host will be launched.

API

Basic usage:

var ReplicaSet = require('mongo-replica-set').ReplicaSet;
 
var rs = new ReplicaSet();
 
// returns a Promise
rs.start()
  .then(function() {
    // started ok.
  })
  .catch(function(err) {
    // something went wrong.
  });

You can pass options to the ReplicaSet constructor, similar to the command-line tool:

var rs = new ReplicaSet({
  numInstances: 5,
  startPort: 55000,       
  baseFolder: '/opt/data',
  verbose: true,
  useColors: false   /* Don't use colours when outputting to console */
});
 
rs.start();

Once the replica set is running you can obtain the hostname:port connection strings:

var conn = rs.getHosts();
 
// [ '127.0.0.1:55000', '127.0.0.1:55001', '127.0.0.1:55002']

Contributing

Contributions are welcome! Please see CONTRIBUTING.md.

LICENSE

MIT - see LICENSE.md.

Package Sidebar

Install

npm i mongo-replica-set

Weekly Downloads

4

Version

0.3.0

License

MIT

Last publish

Collaborators

  • hiddentao