Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js $pull-in-MongoDb未按预期工作_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js $pull-in-MongoDb未按预期工作

Node.js $pull-in-MongoDb未按预期工作,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个数组,我正试图根据\u id删除数据,但部分数据被拉出,并填充NULL值来代替该值 排列 vehicle : [ { data :{ _id:"adkabd", "type":"ffff" }, "_id":"amklam", "history":[], "addedon":"date" }, { data :{ _id:"adkcbbd", "type":"ffff" }, "_id":"amklam", "history":[]

我有一个数组,我正试图根据
\u 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"
}
完全基于
\u 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)
                }
              );
错误:跟踪:发生错误[未定义,未定义]

请暂时忽略括号。 目前在我得到的输出中

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}},

仍然得到相同的输出:
data:null,\u id:“add”,history:[],“addedon”:“date”
我已经用控制器部分更新了这个问题,注意在事件的“正常”情况下,您的
“vehicle.data.\u id”
实际上是一个“唯一”值。您只需执行以下操作:
Model.collection.update({'vehicle.data._id':“adkabd”},{'pull':{'vehicle':{'data._id':“adkabd”})
。由于您显示的数据在两个数组元素中都相同,因此您比所有匹配元素都要快。我的坏朋友没有注意到
\u id
的值。
车辆.data.\u id
是唯一的值。我可以使用$pull删除数据部分,但它现在显示为null,
\u id,history和addedon
为空仍然显示您的更新语句不正确。使用我给您的语句,因为您正在从错误的位置“拉动”。数组名为
vehicle
我已使用更新的命令更新问题,该命令再次失败。我使用了您告诉的命令。它在第二个回调函数中失败