2015-01-21 3 views
0

사용자 스키마 내에 작업 스키마가 포함되어있는 user.task.fixitItem을 업데이트하려고합니다.몽구스에서 subdoc 데이터를 업데이트하는 방법

이 얻을 사용

app.get('/api/tasks/:id/edit', isAuthenticated, function (req, res) { 
    console.log('*** testing route GET /api/tasks/:id/edit', req.params); 

    User.findOne({'task._id': req.params.id}) 
    .select('task.$') 
    .exec(function(err, user) { 
     if(!user) { 
     res.statusCode = 404; 
     return res.send({ error: 'Not found' }); 
     } 
     if(!err) { 
     return res.render('tasks/edit', {task: user.task[0] }); 
     } else { 
     res.statusCode = 500; 
     console.log('Internal error(%d): %s', res.statusCode, err.message); 
     return res.send({ error: 'Server error' }); 
     } 
    } 
); 

}); 

어떻게 데이터를 업데이트 할 수있는 풋를 작성하려면 어떻게해야합니까?

답변

0

당신은 내 GET 만 subdoc을 통과 및 부모 user._id 함께 통과하지 않는 생각, $와 업데이트 방법은 아하

User.update(
    { 'task._id': req.params.id }, 
    { $set: { 'task.$.fixitItem': 'new value' }}, 
    function(err, user) { 

    } 
); 
+0

을 설정 사용해야합니다. 나는 그것을 따라 가야하는 방법을 알아야하고 추천대로 사용자를 업데이트 할 수 있습니다. – weebsta

+0

나는이 같은 넣어 넣어 – weebsta

+0

'app.put ('/ api/tasks/: id', isAuthenticated, function (req, res) { User.update ({ 'task._id': req.params. (ID가있는 기존 작업 : "+ req."). console.log ("ID가있는 기존 작업 : + req. ') ) 반환 오류 res.render ('/ dashboard'); ) })'이 오류 메시지를받는 중입니다. "Object #에는 메소드 'exec' ", "error ": {}' – weebsta

관련 문제