Skip to main content

Creates a uml-like diagram for a nested mongodb document

Project description

If you have a mongodb database that you wish to document, a good
starting point might be to install mongodoc and use the mongodoc

% mongodoc test

After answering a few questions, you will get an output file that
will look something like this::

| hobbies |
+--| _id: <class 'bson.objectid.ObjectId'> |
| | title: <type 'unicode'> |
| |_____________________________________________|
| _____________________________________________
| | occupations |
| |_____________________________________________|
+--+--| _id: <class 'bson.objectid.ObjectId'> |
| | | duties: <type 'list'> |
| | | title: <type 'unicode'> |
| | |_____________________________________________|
| |
| | ____________________________________________________________________________________
| | | people |
| | |____________________________________________________________________________________|
| | | _id: <class 'bson.objectid.ObjectId'> ________________________________|
| | | address: <type 'dict'> | address ||
| | | first: <type 'unicode'> |________________________________||
| +--| hobby: <class 'bson.objectid.ObjectId'> | number: <type 'unicode'> ||
| | last: <type 'unicode'> | state: <type 'unicode'> ||
+-----| occupation: <class 'bson.objectid.ObjectId'> | street: <type 'unicode'> ||
| | zip: <type 'unicode'> ||
| |________________________________||

The document in the people collection has a sub-document for
the value of the address field, so it appears as a box within
the people diagram. You will get one of these diagrams for each
collection in the db. MongoDoc found that there is a probable
link between the _id of occupations and the occupation field
of the people doc. If the find links feature is not working
for you, you can disable it with the --find-links option

The mongodoc command has a few options for connecting to the db::

% mongodoc -h
usage: mongodoc [-h] [--port PORT] [--host HOST] [--username USERNAME]
[--password PASSWORD] [--file FILE]

Document a mongo db

positional arguments:
name The name of the mongo db to document

optional arguments:
-h, --help show this help message and exit
--port PORT The db port number
--host HOST The db host
--username USERNAME The username for authenticating to the db
--password PASSWORD The password for authenticating to the db
--file FILE The name of the output file
--find-links Enter no if you don't want to find links.


- Bugfix: didn't show sub documents when the subdocs were longer than the parent doc.
- Bugfix: bombed when the value of a field was {}

- Forgot to update the changelog on 0.3
- Minor edit in README.rst.

- Changed the console command
from doc-db to mongodoc
- Fixed easy_install problem
because of a missing HISTORY
file - OOPS!

- Fixed a bug in counting similar docs
- When the user keeps saying no to the
'use this doc' prompt

- Added a simple method to help find the most
representative doc in each collection
- Added a class that finds links between
collections and draws lines between them


- Initial release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mongodoc-0.3.3.tar.gz (6.9 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page