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
Post a Comment