List<T> docs = new ArrayList<T>();
DBObject[] inserts = new DBObject[updateOps.size()];
for (int i = 0; i < updateOps.size(); i++) {
inserts[i] = new BasicDBObject();
UpdateOp update = updateOps.get(i);
update.increment(Document.MOD_COUNT, 1);
T target = collection.newDocument(this);
UpdateUtils.applyChanges(target, update, comparator);
docs.add(target);
for (Entry<Key, Operation> entry : update.getChanges().entrySet()) {
Key k = entry.getKey();
Operation op = entry.getValue();
switch (op.type) {
case SET:
case INCREMENT: {