value = new de.undercouch.bson4jackson.types.ObjectId(id.getTime(), id.getMachine(), id.getInc());
} else if (value instanceof Timestamp) {
Timestamp ts = (Timestamp)value;
value = new de.undercouch.bson4jackson.types.Timestamp(ts.getTime(), ts.getInc());
} else if (value instanceof CodeWithScope) {
CodeWithScope code = (CodeWithScope)value;
value = new de.undercouch.bson4jackson.types.JavaScript(code.getCode(), createJacksonData(code.getScope()));
} else if (value instanceof Code) {
Code code = (Code)value;
value = new de.undercouch.bson4jackson.types.JavaScript(code.getCode(), null);
} else if (value instanceof List) {
List<?> values = (List<?>)value;
List<Object> newValues = new ArrayList<Object>(values.size());
for (Object v : values) {
newValues.add(createJacksonData(v));