How to $lookup/populate an embedded document that is inside an array?
Below is how my schema is looking like.
const CommentSchema = new mongoose.Schema({
    commentText:{
        type:String,
        required: true
    },
    arrayOfReplies: [{  
        replyText:{
            type:String,
            required: true
        },
        replier: [{
            type: mongoose.Schema.Types.ObjectId,
            ref: 'User',
            required: true,
        }],
    }],
});
How can I get query results that look like below:
[    
    {    
        commentText: 'comment text',
        arrayOfReplies: [
            {
                replyText: 'replyText',
                replier: {
                    username:"username"
                    bio: 'bio'
                }
            }
        ]
    }
]
I am trying to populate the replier field inside the array arrayOfReplies. I have tried several variations of the aggregation query below. The ones that have come close to what I am trying to achieve have one short-coming. The comments that do not have replies have an arrayOfReplies array that has an empty object. I.e arrayOfReplies: [{}], essentially meaning that the array is not empty.
I have tried using add fields, $mergeObjects among other pipeline operators but to no avail.
How to $lookup/populate the replier document that is inside the arrayOfReplies array?
Below is a template of the main part of my aggregation query, minus trying populate the replier document.
Comment.aggregate([
    {$unwind: {"path": '$arrayOfReplies', "preserveNullAndEmptyArrays": true }},
    {$lookup:{from:"users",localField:"$arrayOfReplies.replier",foreignField:"_id",as:"replier"}},
    {$unwind: {"path": "$replier", "preserveNullAndEmptyArrays": true }},
    {$group: {
        _id : '$_id',
        commentText:{$first: '$commentText'},
        userWhoPostedThisComment:{$first: '$userWhoPostedThisComment'},
        arrayOfReplies: {$push: '$arrayOfReplies' },
    }},