this is my document in worker collection i want when I delete the id. today worker change to 2.
Again I will add same id today worker change to 0.but same id not create again i need only changed todayworker status?.
output:
"_id" : ObjectId("542012b5b79597180574255d"),
"userId" : ObjectId("54052de21b7a0d0b00739cf9"),
"createdDate" : ISODate("2014-09-22T12:14:45.78Z"),
"todayWorker" : 2,
i was use given the following code but not working properly please give me a solution anybody
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 }
});
//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");
}
};