U kunt de Model.prototype.update
gebruiken
in mangoest om het subdocument timings
bij te werken .
Er bestaan echter twee scenario's -
- Als je items wilt pushen zonder dubbele controle, gebruik dan
$push
telefoniste
var filter = {
_id: mongoose.Types.ObjectId('<USER_ID>')
};
var update = {
$push: {
timings: {
startTime: "",
endTime: "",
elapsedTime: ""
}
}
};
db.collection.update(filter, update);
- Als je alleen afzonderlijke items wilt pushen, gebruik dan
$addToSet
telefoniste
var filter = {
_id: mongoose.Types.ObjectId('<USER_ID>')
};
var update = {
$addToSet: {
timings: {
startTime: "",
endTime: "",
elapsedTime: ""
}
}
};
db.collection.update(filter, update);
Opmerking:vereist mongoose
eerst
const mongoose = require('mongoose');
Corrigeer uw code naar het onderstaande, u kunt ook de exacte ID van het subdocument niet krijgen, maar u kunt het bijgewerkte hoofddocument krijgen -
const updatedUser = await User.findOneAndUpdate({
_id: mongoose.Types.ObjectId(req.body._id)
},
{
$addToSet: {
timings: {
startTime,
endTime,
elapsedTime
}
}
}, {
new: true
}).exec();