我正在为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"}})
答案 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)
代替。