HDFStore
supports hierarchical indexing, see here.
You can store attributes attached to a particular node, see here. This is generally limited to a small amount of meta-data.
HDF5 is quite efficient at storing/searching the actual data, e.g. a DataFrame. The structure is up 2 you, but it is not meant to compete, rather it can complement mongodb
. mongo is nice at keeeping/searching these 'json-like' kinds of nested structures.
You can always keep a reference to the actual location of the data (the DataFrame/Series) rather than the actual data in a mongo db.
HDF5 will be orders of magnitude faster for storing/searching the actual data (except for very small datasets).