El nombre de usuario no se actualiza después de ejecutar esto. También probé UpdateOne y tampoco funcionó. Se suponía que el código actualizaba una matriz, pero intenté actualizar el nombre de usuario para que fuera más fácil localizar el problema.
const mongoose = require('mongoose'); const schema = mongoose.Schema; const userSchema = new schema({ Username:{ type: String, required: true }, Password:{ type: String, required: true }, Cart: Array }); const User = mongoose.model('User', userSchema); module.exports = User;.
app.post('/putbox', (req, res) => { var query = { Username: user }; var newvalues = { $push: { Cart: "Boxing" } }; try{ User.find(query).then((d)=>{ var values = d[0].Cart; values.push("boxing") User.findByIdAndUpdate(d._id, {Username: "test1"}) }); } catch(err) { console.log(err); } res.redirect('/boxing'); });Creo que la sintaxis no es correcta. El primer elemento de updateOne busca coincidencias para actualizar. Simplemente está pasando d._id que no es lo mismo que la clave _id en su estructura de base de datos. prueba este
User.updateOne({ _id: d._id }, {Username: "test1"})