Al trabajar en el esquema Mongoose, desea contar la cantidad de elementos en la matriz del carrito, ¿cómo puede escribir la función? Dónde quiero encontrar un cliente en particular y contar la longitud de Cart Array
async function countcartproduct(Customer_id){ console.log(Customer_id); const total = await CustomerCart.aggregate([{$match:{Customer_id:Customer_id}},{$project:{Cart:{$size:'$Cart'}}}]); console.log(total); } var CustomerCart = mongoose.Schema({ Customer_id:{ type:mongoose.Schema.Types.ObjectId, ref:'Customers' }, Cart:[{ Product_id:{ type:String, require:true }, Product_Name:{ type:String, require:true, }, Product_Price:{ type:Number, require:true, }, Product_Quantity:{ type:Number, require:true, default:1, } }] })la identificación del cliente que está pasando va como una cadena, pero es una identificación de objeto en su esquema, por lo que ningún documento coincidía
async function countcartproduct(Customer_id) { console.log(Customer_id); const total = await CustomerCart.aggregate( [{ $match: { Customer_id: mongoose.Types.ObjectId(Customer_id) } }, { $project: { Cart: { $size: '$Cart' } } }]); console.log(total); }convertirlo a ID de objeto debería funcionar