Retornar coleção atualizada com Mongoose
Eu trabalho com o nodejs / express / mongoose / angularjs. Gostaria de atualizar uma coleção chamada Listas, que possui várias propriedades, uma das quais é uma matriz de itens. No código a seguir, estou empurrando um novo item de tarefa na matriz de itens. Tudo funciona bem, no entanto, a função de atualização não envia de volta a coleção atualizada, então devo executar outra consulta no banco de dados. Existe uma maneira mais eficiente de fazer isso?
O código nodejs / express:
exports.addTaskToList = function(req, res) {
var listId = req.params.Id;
var taskId = req.params.TaskId;
Lists.update({_id: listId}, {$push: {items: taskId}}, {safe:true, upsert: true}, function(err, result){
if(err) {
console.log('Error updating todo list. ' + err);
}
else{
console.log(result + ' todo list entry updated - New task added');
Lists.findById(listId).populate('items').exec(function (err, updatedEntry) {
if (err) {
console.log('Unable to retrieve todo list entry.');
}
res.send(JSON.stringify(updatedEntry));
});
}
});
};
Além disso, os itens da matriz são uma matriz de ObjectIds. Esses itens estão em um esquema separado, portanto, em uma coleção separada. É possível empurrar o objeto inteiro e não apenas seu _id para que não haja outra coleção criada?