我正在尝试在mongoDB中的文档中设置一个字段,但是当我运行node app.js
时出现以下错误
theres my code:
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 :(得分:2)
根据mongoose's update
documentation,应使用至少两个参数调用update
方法。引用功能签名,
Model.update(conditions, update, options, callback);
conditions
- 一个有效的JavaScript对象,用于查找要更新的实际文档。
update
- 实际的更新对象,它决定了文档中的实际更改。
注意如果您使用的是本机mongodb驱动程序,update
函数会接受类似的参数。引用update
文档,
update(selector, document, options, callback)
...
selector
更新操作的选择器。
document
更新文档。
所以,你的功能必须像这样改变
the_collection.update({
'_id': req.query.id
}, {
$set: {
ativo: 'T'
}
});