【问题标题】:Node JS - MongoDB - findAndModify is upating wrong objectNode JS - MongoDB - findAndModify 更新了错误的对象
【发布时间】:2017-07-25 14:31:43
【问题描述】:

我的 findAndModify 方法有问题,我正在尝试更新一条记录,但它总是更新数据库中的第一条记录。

AngularJS 调用:

$http.put('/fidlist/'+$scope.fid._id, $scope.fid)
.then(
function(response) {
refresh();
},
function(error) {
console.log("error -- "+error);
})

server.js

app.put('/fidlist/:id',function(req,res){
var id = req.params.id;
db.fidlist.findAndModify({
Query:{_id:mongojs.ObjectID(id)}, 
update:{$set: {fid:req.body.fid,description:req.body.description,release:req.body.release,status:req.body.status,nodeagent:req.body.nodeagent,nas:req.body.nas,cli:req.body.cli,clis:req.body.clis,webui:req.body.webui,webuis:req.body.webuis,tl1:req.body.tl1,tls:req.body.tls}},
new:true
}, function(err,doc){
res.json(doc);
});
});

提琴手回应:

【问题讨论】:

  • 什么是 db.fidlist 以及它在哪里定义?
  • 如您在此处看到的,如果您的 fidlist 有数组,您可以一次修改一个对象,那么您必须以不同的方式实现它。 docs.mongodb.com/manual/reference/method/…
  • 嗨@YashGanatra,感谢您的回复,fidlist 是我的数据库名称并在服务器文件var db = mongojs('fidlist',['fidlist']); 中定义它 - 我正在尝试修改一个对象,我正在传递对象 ID请求正文中的查询和字段

标签: javascript angularjs node.js mongodb


【解决方案1】:

你有:

Query : {_id:mongojs.ObjectID(id)}

但应该是:

query : {_id:mongojs.ObjectID(id)}

如文档所述in the fine manual

【讨论】:

    猜你喜欢
    • 2013-06-10
    • 1970-01-01
    • 2016-01-06
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2017-03-11
    相关资源
    最近更新 更多