I am having some trouble with the value of isDBObject and complex types that represent arrays.  Currently, this is defined on line 141 and is any object that is a DBObject, but not a BasicDBList.  If I convert an object into a BasicDBList, then I cannot reload it and the conversion eventually fails when looking for the "className" attribute.

I will improve this pull request to handle this condition and comment when I have it working.