How to update multiple column with increment column in mongo db





How to update multiple column with increment column in mongo db in Java

Introduction

db.collection.update(query, update, options) Modifies an existing document or documents in a collection. The method can modify specific fields of an existing document or documents or replace an existing document entirely, depending on the update parameter. By default, the update() method updates a single document. Set the Multi Parameter to update all documents that match the query criteria. The update() method has the following form:
For more understanding : click




/*logger.debug("Inside updateUserSumInfoPermissionData method");
  boolean success = false;

  MongoTemplate spsMongoTemplate = MongoConnectionManagerImpl.getMongoTemplate(IMongoTemplate.SPS_MONGO_TEMPLATE);
        DBCollection dbCollection = spsMongoTemplate.getCollection(UserPermissionData.collectionName);
        DBObject query = new BasicDBObject();
        BasicDBObject dbObject = new BasicDBObject();
                 
        //query.put(UserPermissionData.entrySource, EntrySource.ADMIN.getEntrySource());
        query.put(UserPermissionData.cobrandId,cobrandId);
     query.put(UserPermissionData.userId, userId);
     if(siteId != -1 && sumInfoId == -1){
      query.put(UserPermissionData.siteId, siteId);
      dbObject.put(UserPermissionData.siteId, siteId);
     }else if(siteId == -1 && sumInfoId != -1){
      query.put(UserPermissionData.sumInfoId, sumInfoId);
      dbObject.put(UserPermissionData.sumInfoId, sumInfoId);
     }else{
      query.put(UserPermissionData.sumInfoId, new BasicDBObject(IMongoQueryConstants.EXISTS, false));
      query.put(UserPermissionData.siteId, new BasicDBObject(IMongoQueryConstants.EXISTS, false));
        }
     
     query.put("expiry", new BasicDBObject(IMongoQueryConstants.GREATER_THAN_OR_EQUAL, new Date()));
     
        dbObject.put(UserPermissionData.entrySource, EntrySource.SYSTEM.getEntrySource());
        dbObject.put(UserPermissionData.cobrandId, cobrandId);
        dbObject.put(UserPermissionData.userId, userId);
        if(allowed){
         dbObject.put(UserPermissionData.allowed, true);
         dbObject.put(UserPermissionData.action, action);
        }else{
         dbObject.put(UserPermissionData.allowed, false);
         dbObject.put(UserPermissionData.action,null);
        }
        
        DBObject modifiedObject =new BasicDBObject();
  modifiedObject
    .put("$set",
      new BasicDBObject()
        .append(UserPermissionData.allowed, allowed)
        .append(UserPermissionData.expiry, expiry));
  if(blockFlag){
  BasicDBObject incrObject = new BasicDBObject();
  incrObject.append(UserPermissionData.consecutive, 1);
  modifiedObject.put("$inc", incrObject);
  }
        dbObject.put(UserPermissionData.expiry, expiry);
        dbObject.put(UserPermissionData.consecutive, 0);
        
        logger.debug("Query : "+query+", Obj : "+dbObject);
        WriteResult wr = null;
        DBCursor cursor = dbCollection.find(query);
        if (cursor!=null && cursor.size()>0){
   wr = dbCollection.update(query, modifiedObject, false, false);
        }else{
   try{
          wr = dbCollection.insert(dbObject);
          success = true;
         }catch(DuplicateKeyException e){
          wr = dbCollection.update(query, dbObject, false, false);
          success = wr.getN() > 0;
          if(!success){
           logger.fatal("Oops!! Something went wrong neither able to update nor insert for query "+ query+",object "+dbObject);
          }
         }
  }
  




    






Previous
Next Post »