Zwróć zaktualizowaną kolekcję za pomocą Mongoose
Pracuję z nodejs / express / mongoose / angularjs. Chciałbym zaktualizować kolekcję o nazwie Lists, która ma kilka właściwości, z których jedna jest tablicą elementów. W poniższym kodzie pcham nowe elementy zadania w tablicy elementów. Wszystko działa dobrze, jednak funkcja aktualizacji nie odsyła zaktualizowanej kolekcji, a następnie muszę wykonać kolejne zapytanie w bazie danych. Czy jest to skuteczniejszy sposób?
Kod 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));
});
}
});
};
Ponadto elementy tablicy są tablicą obiektów. Te elementy są w oddzielnym schemacie, więc w osobnej kolekcji. Czy można wypchnąć cały obiekt, a nie tylko jego _id, aby nie powstała kolejna kolekcja?