Пн goose: обновить документ в хуке предварительного сохранения - PullRequest
1 голос
/ 25 февраля 2020

Я совершенно новичок в nodeJS и у меня есть проблема, которую я не могу решить ...

Я хотел бы обновить связанный документ в хуке предварительного сохранения в пн goose: ошибок нет, но в результате я всегда получаю:
updated: {"n": 1, "nModified": 0, "ok": 1}, поэтому документ никогда не обновляется .... как я могу решить эту проблему? я знаю, что могу сделать все элементы управления раньше, но предварительное подключение кажется хорошим местом для этого. спасибо за помощь ...

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var suivilotSchema = new Schema({
code_lot:             { type: String,Required:  'Code Lot cannot be left blank.' },
site_IMS:             { type: String,Required:  'Site IMS cannot be left blank'},
date_plantws:         { type: String,Required:  'tws plan prod cannot be left blank'},
nb_server:            { type: Number,Required:  'nb Server cannot be left blank.',default: 1},
nb_server_done:       { type: Number,Required:  'nb Server done cannot be left blank.',default: 0},
date_created:         { type: Date,default: Date.now },
date_updated:         { type: Date },
retry:                { type: Number },
status:               { type: Number}
});

suivilotSchema.pre('save', function (next) {
console.log('***** PRE HOOK suivilot *******');
var self = this;

this.constructor.findOne({'code_lot' : self.code_lot,'date_plantws' : self.date_plantws, 'retry' : 
self.retry },function (err,existinglot) {
    if (!existinglot){
        console.log('SUIVILOTS : pas de resultat');
        next();
    }
    else{
        console.log('SUIVILOTS : lot exists: ',existinglot._id);

        existinglot.updateOne({ '_id' : existinglot._id  }, { $inc:{'nb_server' : 1} 
},function(err,updated){
        if(err)
            console.log("Error during increment server :"+err);
            console.log('updated:'+JSON.stringify(updated));
            console.log('updated:'+JSON.stringify(existinglot));
        });
      }
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...