在文档中设置一个字段 - mongoDB

时间:2015-03-03 03:10:22

标签: javascript node.js mongodb

我正在尝试在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)

1 个答案:

答案 0 :(得分:2)

根据mongoose's update documentation,应使用至少两个参数调用update方法。引用功能签名,

Model.update(conditions, update, options, callback);
  1. conditions - 一个有效的JavaScript对象,用于查找要更新的实际文档。

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

  3. 注意如果您使用的是本机mongodb驱动程序,update函数会接受类似的参数。引用update文档,

    update(selector, document, options, callback)
    
         

    ...

         

    selector更新操作的选择器。

         

    document更新文档。

    所以,你的功能必须像这样改变

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