2017-07-25 54 views
0

我在findAndModify方法中遇到問題,我試圖更新一條記錄,但它總是更新數據庫中的第一條記錄。Node JS - MongoDB - 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); 
}); 
}); 

提琴手響應: enter image description here

+0

什麼是db.fidlist和它的定義? –

+0

正如你在這裏看到的,你可以一次修改一個對象,如果你的fidlist有數組,那麼你必須以不同的方式實現它。 https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/ –

+0

嗨@YashGanatra,感謝您的回覆,fidlist是我的數據庫名稱,並將其定義在服務器文件'var db = mongojs( 'fidlist',['fidlist']);' - 我試圖修改一個對象,並且我在查詢中傳入對象ID,並且在請求體中傳入字段 – user2907330

回答

1

您有:

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

但它應該是:

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

如記錄in the fine manual

+0

謝謝@robertklep - 現在工作正常:) – user2907330