this is my document in worker collection i want when I delete the id. today worker change to 2
workerschema code var workerSchema = new mongoose.Schema({ userId:{type:Schema.Types.ObjectId, ref: 'User'}, todayWorker:{type:Number,default:0,enum:[0,1,2]}, createdDate:{type: Date,default:Date.now }
first time insert new id and set today worker 0. If i want delete id today worker set2.and again i will insert same id just i need update today worker 0.
here when i was delete query run successfully.(update today worker status to 2)but after delete i was insert same id,should not properly working.(not update todayworker)
I need update or create query run in single command..i tried to use lot of query and also i'm new in mongo..nobody have help me..so give me a best solution.
//delete worker code(while delete properly changed todatworker status) var options1={multi:true}; //Worker.remove(selection,function(err,status){ Worker.update(selection,{$set:{todayWorker:2}},options1,function(err,status){ if(err) res.send(err); else { res.json({"success":true,"message":"Workers Deleted"}); } }); //add worker code (but insert time not changed todayworker status) var idObjects=createObjectIds(idsarray); var selection={_id:{$in:idObjects}}; //console.log(selection); if(todayWorker==0){ var projection={_id:1}; var callback1=function(err,users){ if(err) res.send(err); else{ var count1=users.length; for(var i=0;i<count1;i++){ Worker.findOneOrCreate({userId:users[i].id},{userId:users[i].id,todayWorker:todayWorker},function(err,worker){ //Worker.findAndModify({query:{userId:users[i].id},update{$setOnInsert:{todayWorker:"todayWorker"}}},{ upsert: true },function(err,Worker){ //Worker.update({userId:users[i].id},{$setOnInsert:{ userId:users[i].id,todayWorker:todayWorker,createdDate:Date.now()}},{ upsert: true },function(err,Worker){ if(err) res.send(err); else { count2++; if(count2==count1) res.json({"status":true,"message":"Worker Added"}); } }); } } } User.find(selection,projection,callback1); } else { res.send("No user found"); }
};
I was tried to use multiple query..kindly help me and give best solution..