MongoError:selector必须是有效的JavaScript对象

时间:2016-05-30 11:10:29

标签: node.js mongodb

我正在为nodejs使用mongodb驱动程序。

我在更新记录时遇到错误。

  

{“name”:“MongoError”,“message”:“选择器必须是有效的JavaScript   对象”, “驱动器”:真}

这是我的剧本:

MongoClient.connect(url, function (err, db) {
      if (err) 
      {
        console.log('Unable to connect to the mongoDB server. Error:', err);
        return;
      }
    var collName = "bank";
    var SelectParas = {"name":"ABC"};
    var UpdateValues = {"name":"PQR"};

    db.collection(collName).update(collName,SelectParas,{$set:UpdateValues},function (err,numUpdated){
            if(err)
            {
            console.log('err');
            console.log(err);
            return; 
            }
            if(numUpdated) 
            {
             console.log('Updated Successfully %d document(s).', numUpdated);
            }
                db.close();

            });
});

我可以在mongo console& amp;它有效。

db.bank.update({"name":"ABC"},{$set:{"name":"PQR"}})

1 个答案:

答案 0 :(得分:2)

您正在传递collecion名称,即字符串作为查找更新的查询。不需要在那里传递收藏名称。

db.collection(collName).update(collName,SelectParas,{$set:UpdateValues},function (err,numUpdated) 
// collName need not pass in the update function.

需要使用

db.collection(collName).update(SelectParas,{$set:UpdateValues},function (err,numUpdated)代替。