$拉在MongoDb中没有按预期工作
我有一个数组,我试图删除基于_id
的数据,但部分数据正在被拔出和NULL
值填充,而不是。
排列
vehicle : [ { data :{ _id:"adkabd", "type":"ffff" }, "_id":"amklam", "history":[], "addedon":"date" }, { data :{ _id:"adkcbbd", "type":"ffff" }, "_id":"amklam", "history":[], "addedon":"date" }]
现在我想提取这些数据
{ data :{ _id:"adkabd", "type":"ffff" }, "_id":"amklam", "history":[], "addedon":"date" }
完全基于_id:"adkabd"
更新的命令:
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 ]
现在请忽略括号。 目前在输出我得到
data : null "_id":"amklam", "history":[], "addedon":"date"
控制器中的代码:
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, {}); } }) }
这应该工作
Model.collection.update({'vehicle.data._id': params._id}, {$pull : {vehicle: {'data._id': params._id}},