Используя приведенный ниже код, я пытаюсь сгенерировать equip_no
для оборудования до его сохранения в базе данных. По сути, мне нужно получить максимальное значение предыдущего записанного типа оборудования (например, eqip_code = 'SUB'
), увеличить значение и затем сохранить его в базе данных.
const mongoose = require('mongoose');
const schemaEquip = new mongoose.Schema({
equip_type: String,
equip_no: Number,
description: String
});
// generate equip_no
schemaEquip.pre('save', function(next) {
//this.equip_no = 1; //Equip.find({equip_type : this.equip_type}).sort({equip_no : -1}).limit(1);
// const doc = await Equip
// .find({equip_type : this.equip_type})
// .sort({equip_no : -1})
// .limit(1);
// console.log(doc);
// this.equip_no = doc.equip_no + 1;
Equip.find({equip_type: this.equip_type}).sort({equip_no: -1}).limit(1), function (err, doc) {
if (err) {
console.log(err);
next(err);
} else {
console.log(doc);
next();
}
};
});
const Equip = mongoose.model('Equip', schemaEquip, 'equip');
module.exports = Equip;