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:
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.
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.
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.
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).
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.