我需要从满足某些条件的对象数组中找到对象

i need to find objects from array of object which satisfy some condition

这是我的猫鼬代码

var agentSchema = new Schema({
datejoined: Date,
,
product: [{
   
    fleet: String,
    payment: String,

}] }) 我想从满足条件 payment equals done

的数组产品中获取对象
Agent.find({ _id: id, product: { $elemMatch: { payment: 'Done' } } })

我试过这种方法

Agent.findone({ _id: id}).select( product: { $elemMatch: { payment: 'Done' } } }))

无论条件如何,显示一个对象或所有对象的方法

 Agent.aggregate([{ $match: { _id: ObjectId(id) } }, { $unwind: "$product" },
    {
        $match: { 'product.payment': "Done" },
    },

]).then(prod => {

我能够用这段代码解决我自己的问题