Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Mongoose] Problème d'update

Sujet résolu
    14 mai 2019 à 15:20:48

    Bonjour,

    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 = new mongoose.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... :euh:

    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

    • Partager sur Facebook
    • Partager sur Twitter

    [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.
    • Editeur
    • Markdown