code: private boolean updateShardedObjectMove(DBObject dbObj) {
          DBObject currDBObj = SpiderService.instance().getObject(m_tableDef, dbObj.getObjectID());
          m_logger.debug("Update forcing move of object {} from shard {} to shard {}",
                         new Object[]{dbObj.getObjectID(),
                                      m_tableDef.getShardNumber(currDBObj),
                                      m_tableDef.getShardNumber(dbObj)});
          
          deleteObject(currDBObj);
          mergeAllFieldValues(dbObj, currDBObj);
          addBrandNewObject(currDBObj);
          return true;
      }
docs: delete the current object, merge the new fields into it, and re-add it.