REPL for mongodb with vi key bindings


Mongovi is a small REPL for MongoDB with vi key bindings. See the list of supported methods by node-mongodb-native. And the list of supported vi key bindings by readline-vim.

$ sudo npm install -g mongovi

open shell for database bar:

$ mongovi bar

print names of all databases:

> show dbs

print name of current database:

> db

switch to another database:

> use foo
foo 2 collections

list collections in current database:

> c

list contents of collection baz:

> c.baz.find();
{"_id":"52378623870dd40000000001", "foo": "bar" }
{"_id":"52378623870dd40000000002", "foo": "baz" }

list contents of collection baz with a callback:

> c.baz.find().toArray(function(err, items) { console.log(err, items.length); });
> null 2

update item in collection baz:

> c.baz.update({ _id: new ObjectID('52378623870dd40000000001') }, { foo: 'quux' });

insert item into collection baz:

> c.baz.insert({ foo: 'qux' });

drop collection baz:

> c.baz.drop()

drop current database:

> db.dropDatabase()

Database access information is read from .mongovi.json in the users home directory if it exists.

  "user":   "joe",
  "pass":   "foo",
  "db":     "bar",
  "authDb": "admin",
  "host":   "",
  "port":   27017

Show all command-line options with mongovi --help. These options override any config file setting.

Usage: mongovi [options] [-d] dbname


  -h, --help             output usage information
  -V, --version          output the version number
  -d, --db <dbname>      database name, default admin
  -p, --port <number>    port, default 27017
      --host <address>   hostname, default
  -u, --user <username>  username to authenticate
  -v, --verbose          show debugging information

switch to a database named foo

show the list of databases, comparable with:

db.admin().listDatabases(function(err, dbs) {

show the list of collections in the current database, comparable with:

db.collectionNames(function(err, collections) {

alias for c

print the name of the database currently selected

  • where foo is a method supported by mongodb.Db. If no callback is provided on any of these methods the results are automatically printed.
  • where foo is the name of a collection in the current database.
  • where bar is a method supported by mongodb.Collection. If no callback is provided on any of these methods the results are automatically printed. is a shortcut for:, items) {
  items.forEach(function(item) {

the raw mongodb object

alias for mongodb.ObjectID

alias for mongodb.Timestamp