2015-03-03 82 views
1

我正在尝试设置在MongoDB中一个文档中的字段,但我得到以下错误,当我运行node app.js设置文档场 - MongoDB的

抛儿; //未处理 '错误' 事件

那里有我的代码:

app.get('/verify', function(req, res) { 
    console.log(req.protocol + ":/" + req.get('host')); 
    var collection = "usuarios"; 
    collectionDriver.getCollection(collection, function(error, the_collection) { 
     if (error) { 
      res.send(400, error); 
     } else 
      the_collection.update("{_id:" + req.query.id + "}, {$set: {ativo:'T'}}"); 
    }); 
}); 

编辑:

app.get('/verify',function(req,res){ 
console.log(req.protocol+":/"+req.get('host')); 
    var collection = "usuarios"; 
    collectionDriver.getCollection(collection, function(error, the_collection) { 
     if (error) { res.send(400, error);} 
     else 
      the_collection.update({ '_id': req.query.id, $set: { ativo: 'T' } }); 
     // the_collection.update("{_id:'"+req.query.id+"'}, {$set: {ativo:'T'}}");} 
    }); 


}); 

和误差

events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at Object.<anonymous> (/home/ladessa/files/MelhoraCidade/server/app.js:206:24) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10)

+0

您可以显示完整的错误回溯? – thefourtheye 2015-03-03 03:29:49

+0

是的,请...看我的编辑 – Developer2012 2015-03-03 03:33:41

+0

看起来你启动服务器的端口已经被另一个进程打开了。 – thefourtheye 2015-03-03 03:34:30

回答

2

作为每mongoose's update documentation,所述update方法应该用mi来调用最少两个参数。引用函数签名,

Model.update(conditions, update, options, callback); 
  1. conditions - 有效的JavaScript对象找到实际的文件进行更新。

  2. update - 实际的更新对象,它决定了文档中所做的实际更改。

注意在情况下,你使用本地的MongoDB驱动程序,update函数接受类似的参数。引述update文档,

update(selector, document, options, callback) 

...

selector更新操作的选择。

document更新文档。

所以,你的功能被改变这样

the_collection.update({ 
    '_id': req.query.id 
}, { 
    $set: { 
     ativo: 'T' 
    } 
});