New features

MongoDB support

MetaModel 2.1 ships with MongoDB support! This means that you can get a traditional table/column view on your schema-less MongoDB databases. The MongoDB implementation of MetaModel has a number of interesting features:

  • Autodetection of schema structure. You can provide a MongoDB instance and let MetaModel autodetect an appropriate schema structure automatically (it will inspect the first 1000 documents of each document).
  • Or you can specify your schema structure manually!
  • You can even write data to MongoDB, since the MongoDB datacontext implements our UpdateableDataContext interface.

We think that the addition of MongoDB to the list of supported datastores is significant. Both because MongoDB is really rising in popularity, but also because it demonstrates how MetaModel can be applied and provide a consistent and typesafe querying interface, even to NoSQL databases.

The new MongoDB support is provided through the MongoDbDataContext class.


Fast and memory effecient XML reading (SAX based)

Previously the XML support in MetaModel was based on DOM parsing which means that eventually the whole XML tree will be loaded into memory. That is of course not so memory effecient and not so fast as desired.

MetaModel 2.1 provides a new strategy for parsing XML documents, in addition to the old DOM based one. The new strategy uses SAX parsing, which is a streaming approach that has a low memory footprint and a very quick response time.

The new XML support is provided through the XmlSaxDataContext class.

Bugfixes

CSV append newline issue

There was an issue when inserting rows into CSV files, that an existing newline was assumed. If the CSV file where the rows were being inserted did not end on a newline, then the values would be appended to the existing last line. This bug has been fixed.


Explicit inserting NULL in databases

When inserting records into a database there is a difference on whether you insert NULL or if you just don't specify a value to insert. In 2.1 this issue has been fixed so that you can both insert NULLs or omit inserting a value (which will typically rely on the database to insert a default or generated value).


Empty string parsing in Excel

There was an issue in the Excel adapter that caused it to throw an exception in certain situations where it would try to parse an empty string as a number. This issue has now been fixed.