Mongoose execPopulate для документа, не обновляющего виртуальное свойство новыми заполненными записями - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть модель с виртуальным свойством, которое указывает на другую коллекцию.При запросе этой модели через класс модели и заполнении связанных документов виртуальное свойство правильно содержит связанные документы.Однако заполнение самого документа не обновляет виртуальное свойство.Виртуальное свойство имеет значение null, а атрибут _doc содержит заполненные документы.

class ChimeraModel extends mongoose.Model {
    /**
     * @async
     * Compiles and registers the defined ChimeraModel into a mongoose Model by:
     * 1.) Populating the ChimeraModel with all related fields, validators, associations, etc.
     * 2.) Unregistering this model from mongoose if it has already been registered
     * 3.) Registering a new mongoose model from details of the ChimeraModel
     * @returns {Promise<mongoose.Model>} - The newly registered mongoose Model
     */
    async compile () {
        mongoose.set('debug', true);
        const thing = await this.constructor.findById(this.id).populate('chimeraFields').exec();
        const thing2 = await this.populate('chimeraFields').execPopulate();

        console.log(thing.chimeraFields); // Array(3) [model, model, model]
        console.log(thing2.chimeraFields); // null
        console.log(thing2._doc.chimeraFiels); // Array(3) [model, model, model]

    }
}
...