J'ai un soucis avec une requête Mongoose qui devrait actualiser mes données en base. L'idée est de modifier le champ "id_intervenantAst" (qui est à default = null) et le set à l'id d'intervenant.
cf code controller :
astreinteRoute.post('/add/:id', async(req,res)=>{
let idJour = req.params.id;
let intervenant = req.body.intervenant.substring(2);
let searchIdItv = Utilisateur.find({'nom': intervenant});
let typeStatut = req.body.statut;
//si statut astreinte
if (typeStatut == 'Astreinte') {
searchIdItv.exec((err,itv)=>{
console.log(itv);
Jour.findOneAndUpdate({"_id": idJour},{$set:{id_intervenantAst: itv._id}},{new:true},(err,date)=>{
if(err) {
console.log("Impossible d'ajouter l'intervenant " + itv.pnom + " " + itv.nom + "pour le jour " + date.date);
} else {
console.log(req.body.intervenant + " ajouter d'astreinte le " + date.date);
console.log(date);
}
})
});
}
//si statut congé (non-dispo)
if (typeStatut == 'Non-disponible') {
}
//si statut dispo
if (typeStatut == 'Disponible') {
}
}
);
Lorsque je demande l'éxecution du script j'ai bien sur mon terminal ("Intervenant Machin ajouter d'astreinte le 29/04/2019) mais rien de modifier en base...
Je vous mets le code des schémas "Jour" et "Utilisateur" :
let mongoose = require('mongoose');
let jourSchema = new mongoose.Schema({
"date": {
type: Date,
required: true
},
"type": String,
"id_intervenantAst": {
type: mongoose.Schema.Types.ObjectId,
ref: 'Utilisateur',
default: null
//required: true
},
"id_intervenantCon": [
{
type: [mongoose.Schema.Types.ObjectId],
ref: 'Utilisateur',
required: false
}
]
});
let Jour = mongoose.model('Jour', jourSchema);
module.exports = Jour;
let mongoose =require('mongoose');
let userSchema =newmongoose.Schema({
"nom": String,
"prenom" : String,
"matricule": String,
"mail" : String,
"tel": String,
"stats": {
"nb_astreintes": [Number],
"nb_conges": [Number]
}
});
let Utilisateur = mongoose.model('Utilisateur', userSchema);
module.exports= Utilisateur;
Voilà voilà... si quelqu'un à une idée je suis preneur
EDIT : à priori itv.id est "undefined", alors que le log de "itv" renvoi bien l'id, nom, prenom...
EDIT : ok c'est bon j'ai trouvé! La requête renvoi un tableau, il fallait faire itv[0]._id....
- Edité par hippomssc 14 mai 2019 à 17:06:57
[Mongoose] Problème d'update
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.