Below is the schema. i want to get the answers as per matched qid, but i am getting all the answers in the answers array. i have tried almost all the queries but not able to understand why is this happening, if you could give link to other article that will be helpful too.
const id = req.params.id;
    
    Channel.findOne({answer: {qid: {$in: [id]}}})  
    .then(result => { 
        console.log(result);
        // let userAnswer;
        // userAnswer = result.answer.map(i => {
        //     return {userId: i.userId , userName: i.userId.name, answer: i.answer}
        // });
        // res.json({ans: userAnswer, question: result.content});  
    })
    .catch(err => {
        console.log(err);
    }); 
const mongoose = require('mongoose');
    const Schema = mongoose.Schema;
    
    const channelSchema = new Schema({
        name: {
            type: String,
            required: true
        },
        category: {
            type: String,
            required: true
        },
        creator: {
            type: String,
            required: true
        },
        subscribers: [{type: mongoose.Types.ObjectId, required: true, ref: 'User'}],
        content: {
            question: [{
                title: {type: String, required: true},
                userId: {type: mongoose.Types.ObjectId, required: true, ref: 'User'}
            }]
        },
        answer: [{
            answer: {type: String, required: true},
            qid: {type: mongoose.Types.ObjectId, required: true},
            userId: {type: mongoose.Types.ObjectId, required: true, ref: 'User'}
        }]
    });
    
    const model = mongoose.model('Channel', channelSchema);
    
    module.exports = model;
 
    