Mongoid::Shell
Create mongo command-lines from Mongoid configuration.
For example, connect to your production database without having to remember the entire command line using a db:production:shell Rake task.
namespace :db
namespace :production
task :shell
Mongoid.load! File.join(Rails.root, "config/mongoid.yml"), :production
system Mongoid::Shell::Commands::Mongo.new.to_s
end
end
end
Commands can be created for the current default session or you can pass a session as an argument to a new command.
Mongoid::Shell::Commands::Mongodump.new # will use Mongoid.default_session
Mongoid::Shell::Commands::Mongodump.new(session: Moped::Session.new([ "127.0.0.1:27017" ]))
Commands accept parameters.
out = File.join(Dir.tmpdir, 'db_backup')
mongodump = Mongoid::Shell::Commands::Mongodump.new(db: 'another_database', out: out)
system mongodump.to_s # mongodump --db another_database --out /tmp/db_backup
Compatibility
This gem supports Mongoid 3, 4 and 5.
Supported Commands
Mongo
The mongo shell is an interactive JavaScript shell for MongoDB. The Mongoid::Shell::Commands::Mongo class generates a command line to connect to MongoDB. A particularly useful feature is that it will always yield the address of the master node of a MongoDB replica set.
Mongoid::Shell::Commands::Mongo.new.to_s
Supports --username, --password, --eval, --nodb, --norc, --quiet and --ipv6.
Mongodump
Mongodump is a utility for creating a binary export of the contents of a database.
mongodump = Mongoid::Shell::Commands::Mongodump.new({ collection: 'test' })
mongodump.to_s # mongodump --db test --collection test
The Mongoid::Shell::Commands::Mongodump class supports --db, --host, --username, --password, --query, --out, --collection, --directoryperdb, --journal, --oplog, --repair, --forceTableScan, --dbpath and --ipv6.
Mongorestore
The mongorestore tool imports content from binary database dump, created by mongodump into a specific database.
mongorestore = Mongoid::Shell::Commands::Mongorestore.new({ collection: 'test', restore: '/tmp/db_backup' })
mongorestore.to_s # mongorestore --db test --collection test /tmp/db_backup
The Mongoid::Shell::Commands::Mongorestore class supports --db, --host, --username, --password, --collection, --ipv6, --dbpath, --directoryperdb, --journal, --objcheck, --filter, --drop, --oplogReplay, --keepIndexVersion and --noIndexRestore.
Mongostat
The mongostat utility provides a quick overview of the status of a currently running mongod or mongos instance.
The Mongoid::Shell::Commands::Mongostat class supports --host, --username, --password, --rowcount, --discover, --noheaders, --http and --all.
Contributing
Fork the project. Make your feature addition or bug fix with tests. Send a pull request. Bonus points for topic branches.
Copyright and License
MIT License, see LICENSE for details.
(c) 2013 Daniel Doubrovkine, Artsy Inc.