query.and(Document.MOD_COUNT).is(modCount);
DBObject fields = new BasicDBObject();
// return _id only
fields.put("_id", 1);
DBObject oldNode = dbCollection.findAndModify(query.get(), fields,
null /*sort*/, false /*remove*/, update, false /*returnNew*/,
false /*upsert*/);
if (oldNode != null) {
// success, update cached document
applyToCache(collection, cachedDoc, updateOp);