public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    String deleteProductValue = "false";

    try {

      // Get the form data
      int productID = Integer.parseInt(request.getParameter("productID"));
      PrintWriter out = response.getWriter();
      DB db = mongo.getDB("FashionFactoryProd");
      DBCollection myProducts = db.getCollection("productInfo");
      DBCollection myTrending = db.getCollection("myTrending");
      BasicDBObject searchQuery = new BasicDBObject();
      searchQuery.put("productID", productID);
      DBCursor cursor = myProducts.find(searchQuery);

      if (cursor.count() == 0) {
        deleteProductValue = "false";
        request.setAttribute("deleteProductValue", deleteProductValue);
        RequestDispatcher rd = request.getRequestDispatcher("deleteProduct.jsp");
        rd.forward(request, response);
      } else {
        int product = 0;
        while (cursor.hasNext()) {

          BasicDBObject obj = (BasicDBObject) cursor.next();
          product = obj.getInt("productID");
          if (product == productID) {
            myProducts.remove(obj);
            myTrending.remove(searchQuery);
            deleteProductValue = "true";

            request.setAttribute("deleteProductValue", deleteProductValue);

            RequestDispatcher rd = request.getRequestDispatcher("deleteProduct.jsp");
            rd.forward(request, response);
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public void performBatch(List<BatchUnit> rows) {
    if (logger.isTraceEnabled()) {
      logger.trace("MongoClientWrapper.performBatch(" + rows + ")");
      logger.trace("Batch size to be performed is " + rows.size());
    }
    // List<Future<? extends Number>> pending = new ArrayList<Future<? extends Number>>();

    for (BatchUnit row : rows) {
      SpaceDocument spaceDoc = row.getSpaceDocument();
      SpaceTypeDescriptor typeDescriptor = types.get(row.getTypeName()).getTypeDescriptor();
      SpaceDocumentMapper<DBObject> mapper = getMapper(typeDescriptor);

      DBObject obj = mapper.toDBObject(spaceDoc);

      DBCollection col = getCollection(row.getTypeName());
      switch (row.getDataSyncOperationType()) {
        case WRITE:
        case UPDATE:
          col.save(obj);
          break;
        case PARTIAL_UPDATE:
          DBObject query =
              BasicDBObjectBuilder.start()
                  .add(Constants.ID_PROPERTY, obj.get(Constants.ID_PROPERTY))
                  .get();

          DBObject update = normalize(obj);
          col.update(query, update);
          break;
          // case REMOVE_BY_UID: // Not supported by this implementation
        case REMOVE:
          col.remove(obj);
          break;
        default:
          throw new IllegalStateException(
              "Unsupported data sync operation type: " + row.getDataSyncOperationType());
      }
    }

    /*long totalCount = waitFor(pending);

    if (logger.isTraceEnabled()) {
    	logger.trace("total accepted replies is: " + totalCount);
    }*/
  }