//mark deleted objects as deleted in the database
DB db = _db.getDB();
String lifetimeAttr = MongoDBConstants.LIFETIME + "." + getRootCid();
for (Map.Entry<String, IdSet> e : idx.getDeletedOids().entrySet()) {
DBCollection dbc = db.getCollection(e.getKey());
IdSetIterator li = e.getValue().iterator();
while (li.hasNext()) {
long oid = li.next();
//save the CID of the commit where the object has been deleted
dbc.update(new BasicDBObject(MongoDBConstants.ID, oid), new BasicDBObject("$set",
new BasicDBObject(lifetimeAttr, head.getCID())));
}
}
//mark dirty objects as inserted
String instimeAttr = MongoDBConstants.LIFETIME + ".i" + getRootCid();
for (Map.Entry<String, IdMap> e : dos.entrySet()) {
DBCollection dbc = db.getCollection(e.getKey());
IdMap m = e.getValue();
IdMapIterator li = m.iterator();
while (li.hasNext()) {
li.advance();
long oid = li.value();
if (oid == -1) {
//the document has been inserted and then deleted again
//do not save time of insertion
continue;
}