mdbtools
Python and UNIX CLI utilities to simplify common MongoDB DevOps tasks
Michael S. Noble
mnoble@broadinstitute.org
There are a number of common operations one would like to perform upon
MongoDB databases directly from a UNIX command line, for scalability,
repeatability and automation (e.g. cron jobs). This package makes it very
easy to do that, without having to write or think in Javascript OR sacrificing
choice of what key bindings you may edit with. The package also offers a
simple object framework, which not only maintains a consistent look and feel
amongst all tools, but also makes it very straightforward to add new ones.
To better resonate with the UNIX environment, many utilities in the mdbtools
suite have been given names which reflect UNIX tools of similar purpose. The
suite currently includes:
- mdbcat display contents of one or more collections, as JSON or TSV/CSV tables
- mdbcp copy a collection
- mdbindex add/remove indexes to/from a collection
- mdbload load a table into a DB
- mdbls list the collections in a DB
- mdbmv rename (move) a collection
- mdbquery issue general purpose key=value queries (with timing info and more, e.g. to assess indexes)
- mdbrm remove a collection
- mdbtouch create a new, empty collection
- mdbstats display summary statistics for one or more collections in a DB
Some of these tools can be extended in a natural way to operate upon entire databases or server instances, not just collections; this has been considered and may appear in a future release.