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

问题描述

这是我的猫鼬代码

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

}] }) 我想从满足条件支付等于完成的数组产品中获取对象

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 => {

我可以用这个代码解决我自己的问题