Anda dapat menggunakan Model.prototype.update
di luwak untuk memperbarui sub-dokumen timings
.
Namun ada dua skenario -
- Jika Anda ingin memasukkan entri tanpa perlu memeriksa duplikat, gunakan
$push
operator
var filter = {
_id: mongoose.Types.ObjectId('<USER_ID>')
};
var update = {
$push: {
timings: {
startTime: "",
endTime: "",
elapsedTime: ""
}
}
};
db.collection.update(filter, update);
- Jika Anda hanya ingin memasukkan entri yang berbeda, gunakan
$addToSet
operator
var filter = {
_id: mongoose.Types.ObjectId('<USER_ID>')
};
var update = {
$addToSet: {
timings: {
startTime: "",
endTime: "",
elapsedTime: ""
}
}
};
db.collection.update(filter, update);
Catatan:Membutuhkan mongoose
pertama
const mongoose = require('mongoose');
Perbaiki kode Anda di bawah ini, Anda juga tidak bisa mendapatkan ID sub-dokumen yang tepat, tetapi Anda bisa mendapatkan dokumen root yang diperbarui -
const updatedUser = await User.findOneAndUpdate({
_id: mongoose.Types.ObjectId(req.body._id)
},
{
$addToSet: {
timings: {
startTime,
endTime,
elapsedTime
}
}
}, {
new: true
}).exec();