запрос мангуста, виртуалы не отображаются

У меня есть следующая схема, настроенная на mongoose, я использую версию 3.6.17:

var PostSchema = new Schema({
    _id: { type: String, required: true, index: { unique: true } },
    video: { type: String, default: ''},
    cover: { type: String, default: ''},
    createdAt: { type: Date, default: Date.now },
    lastUpdate: { type: Date, default: Date.now }
    }, { autoIndex: true, toObject: { virtuals: true }, toJSON: { virtuals: true } });

И следующие виртуалы:

PostSchema.virtual('replied').get(function () {
    return false;
});

PostSchema.virtual('cover_url').get(function () {
    return config.cover.server + this.cover;
});

PostSchema.virtual('video_url').get(function () {
    return config.video.server + this.video;
});

Когда я делаю совокупный запрос:

Post.aggregate(  { $match:  { replyTo: { $ne: "" }, author: user._id,  draft: false } },
                    { $project: {
                            _id: 1,
                            video: 1,
                            video_url: 1,
                            cover: 1,
                            cover_url: 1,
                            createdAt: 1,
                            lastUpdate: 1,
                            Ireplied : { $not: "$replied"} }
                          }, function ( ) ....

В этот момент виртуалы возвращаются, но возвращаются с атрибутом this.cover или this.video, неопределенным.

И когда я делаю Post.findOne (..). Lean (). Populate (...) и т. Д., Я вообще не получаю виртуальные файлы, ни с Post.find (). Lean (). Populate (.. .)

Я что-то упускаю в схеме Post, чтобы иметь возможность вернуть виртуалы, или я делаю что-то не так? И почему при агрегированной операции виртуалы возвращают значениеthis.cover» как неопределено?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос