Export Format

Warning

This feature is not yet complete and might be subject to more minor changes.

Because the JSON and CSV format are fundamentally different the way data is put into these formats is different. Because the Minddistrict database is an object database the JSON format follows the database most closely. The more common type of database is a relational database, where tables are joined to other tables to fullfill queries. Because the Minddistrict database is not a relational database it is not possible to simply export the tables, because there are none.

JSON format

The JSON format is a format that can have arrays and objects in it. As you can see from the exported data lists of similar things are exported as arrays and collections of different things are exported as objects with “keys”. These keys are simply names for the content of the object. The JSON format allows for nesting these things, which is also done for the exports.

Parsing JSON is best done using a commonly-used and accepted library for that in the programming language you are using. If processing JSON in other ways please refer to the relevant documentation of the tool being used.

CSV format

Some of the data being exported are nested. These are more “naturally” exported as JSON (which has nesting). Because CSV is a very common format we also export in this format. To export the nested format we “flatten” the nesting out to multiple rows. A significant drawback of this is that data is repeated, the same data can be seen in multiple rows. Consequentially CSV exports are also bigger in size.

To explain the flattening process let’s use an example. Let’s say we’re exporting sessions. Each session has a list of states. And each state consists of a date, time and the state description. In the CSV format each state change gets its own row, with all of the other session data repeated but the state-data, state-time, state-description are different.

If we have another level of nesting we flatten yet another time. The rest of the row remains the same and we iterate over the list of objects whose attributes need to be exported. For each object in that list we add another row and fill the cells with the relevant data.

Excel format

The Excel format is very similar to the CSV one, except it is encoded in an xlsx file that can be directly opened in Excel. The same flattening of nested data structure happens in the Excel format just as it does in the CSV ones.

Files

Files are not exported by default. If you want to export a property that include or is a file, you need to pass the option allow_file while creating a new export.

When files are exported, the result of the export will be a ZIP file, where files will be included in a sub-directory. The filename will be referred as value for the property in either the json or csv result.

Sorting

The data exported is not sorted in any particular order. The order in which it actually appears in the format might be different across two different exports.