node.js - generating an ID field in mongo -


have question on designing id fields (customized id fields smartcoding needs).

e.g mongodb model

{ projectid : string, projectname : string }

requirement: projectid should start string "proj1000" , increment each record.

 //creation of new project   var post =  function (req, res) { logger.info('entering project post method');     mw.verifytoken(req, function(request,response){        if(response){             var newproject = new project(req.body);             if (!req.body.name){             logger.warn('name of project empty');                     res.status(400);                 res.send('name required');                         } else {                             //project id should start 'ads' , start automatic numbering 1000. example: 'ads1000'.                  project.find({}).sort({projectid : -1}).limit(1).exec(function(err, maxresult){                     if (err) {return err;}                     //getting maximum value of existing project id fields. incrementing it, adding new project id field.                     if(maxresult.length > 0){                         var maxid = ((maxresult[0].projectid).split(config.ads)).slice(1);                         newproject.projectid = config.ads + (parseint(maxid) + 1);                     }else{                         newproject.projectid = config.ads + (parseint(config.id_start));                     }                        logger.info("the new project id "+newproject.projectid);                      var currenttimestamp = new date();                     //creation time stamp added submitteddate field                     newproject.submitteddate = currenttimestamp;                                     //lastupdateddate field set                     newproject.lastupdateddate = currenttimestamp;                                   //lastupdatedperson field set                     //var nuid = json.parse(json.stringify(response)).iss[0]._id;                     var nuid = json.parse(json.stringify(response)).iss._id;                     newproject.lastupdatedperson = nuid;                     //createddate & updateddate fields set comments, assessment, details section                     if(req.body.comments){                           var length = req.body.comments.length;                         for(var i=0; i<length; i++){                                                     newproject.comments[i].createddate = currenttimestamp;                             newproject.comments[i].updateddate = currenttimestamp;                         }                     }                     if(req.body.assessment){                         newproject.assessment.createddate = currenttimestamp;                         newproject.assessment.updateddate = currenttimestamp;                     }                     if(req.body.details){                         newproject.details.createddate = currenttimestamp;                         newproject.details.updateddate = currenttimestamp;                     }                      //if status 'new', set defaultsort value used later sorting                     // in method.                     if(req.body.status === config.proj_status){                         newproject.defaultsort = config.a;                     }else{                         newproject.defaultsort = config.b;                     }                      newproject.save(function(err) {                         if (err) {                             logger.error('error in posting project'+err);                                res.status(500);                             res.send(''+err);                         } else {                             res.status(201);                             res.send(newproject);                             logger.info('exiting project post method');                         }                     });                 });             }         }else{             res.status(401);             res.send('no access token');             logger.warn('no access token');        }     }); }; 

the request hanging , timesout. never responds. without id generation, else working good.

is correct way of generating ids mongodb. appreciate thoughts , guidance.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -