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
command::
% 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]
name
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.
Changelog
=========
0.3.3
-------------------
- Bugfix: didn't show sub documents when the subdocs were longer than the parent doc.
0.3.2
-------------------
- Bugfix: bombed when the value of a field was {}
0.3.1
-------------------
- Forgot to update the changelog on 0.3
- Minor edit in README.rst.
0.3
-------------------
- Changed the console command
from doc-db to mongodoc
- Fixed easy_install problem
because of a missing HISTORY
file - OOPS!
0.2b
-------------------
- Fixed a bug in counting similar docs
- When the user keeps saying no to the
'use this doc' prompt
0.2a
-------------------
- 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
0.1
-------------------
- Initial release
starting point might be to install mongodoc and use the mongodoc
command::
% 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]
name
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.
Changelog
=========
0.3.3
-------------------
- Bugfix: didn't show sub documents when the subdocs were longer than the parent doc.
0.3.2
-------------------
- Bugfix: bombed when the value of a field was {}
0.3.1
-------------------
- Forgot to update the changelog on 0.3
- Minor edit in README.rst.
0.3
-------------------
- Changed the console command
from doc-db to mongodoc
- Fixed easy_install problem
because of a missing HISTORY
file - OOPS!
0.2b
-------------------
- Fixed a bug in counting similar docs
- When the user keeps saying no to the
'use this doc' prompt
0.2a
-------------------
- 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
0.1
-------------------
- Initial release
Project details
Release history Release notifications | RSS feed
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 details)
File details
Details for the file mongodoc-0.3.3.tar.gz
.
File metadata
- Download URL: mongodoc-0.3.3.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c442cdf596ee5e8048ee062be71b7fbae04d3c146d00673e22229e79ea7d0e93 |
|
MD5 | c627761b50e36258bd32cf326dc422a2 |
|
BLAKE2b-256 | b2be7d39ade1e2d994e99102bd4444a27b5ec1c92d42f2516e106977e35f5910 |