I have an array and I am trying to delete the data on basis of _id
, but partial data is being pulled out and NULL
value is populated in place of that.
Array
vehicle : [
{
data :{
_id:"adkabd",
"type":"ffff"
},
"_id":"amklam",
"history":[],
"addedon":"date"
},
{
data :{
_id:"adkcbbd",
"type":"ffff"
},
"_id":"amklam",
"history":[],
"addedon":"date"
}]
Now I want to pull out this data
{
data :{
_id:"adkabd",
"type":"ffff"
},
"_id":"amklam",
"history":[],
"addedon":"date"
}
completely on basis of _id:"adkabd"
Updated command :
async.series(
[
function(callback) {
Models.DispatchOrder.update({'vehicle.data._id': criteria._id},
{$unset:{'vehicle.$':""}},
callback()
);
},
function(callback){
Models.DispatchOrder.update(
{'vehicle': null},
{$pull: {'vehicle':null}},
callback()
);
}
],
function(err,resp){
if(err)
callback(err)
callback(resp)
}
);
error : Trace: ERROR OCCURED [ undefined, undefined ]
Please ignore the brackets for now. Currently in output I get
data : null
"_id":"amklam",
"history":[],
"addedon":"date"
Code in the controller :
var deleteVehicle = function(params, callbackRoute){
var projection = {};
var options = {limit: 1};
var criteria = {
_id: params._id
};
Services.deleteDispatchVehicle(criteria, function (err, resp) {
if (err) {
callbackRoute(err)
} else {
if(resp.result.n === 0)
return callbackRoute("Id not found");
callbackRoute(null, {});
}
})
}