col.save(obj);
} else {
BasicDBObject query = new BasicDBObject();
for (int i = 0; i < upsertFields.length; ++i) {
String field = upsertFields[i];
if (!obj.containsField(field)) {
throw new Exception("Upsert field " + field + " not present in object " + obj.toString());
}
query.put(field, obj.get(field));
}
col.update(query, obj, true, false);