If the bson fields are in a known order then they can be mapped/loaded into the data type directly. Otherwise, you have to use a dictionary to map bson fields to object fields. Mongo could specify the order (eg. sorted) and the data type could be made to match that. Alternatively, a query with a projection (subset of fields to retrieve) can return documents with fields ordered the same as the projection.