I was working with mongoose to populate field of ids with their respective documents to a new field.my question is assuming my cart model is -
let CartSchema = new mongoose.Schema({
    userId: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    },
    productIds: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Product'
        }
    ]
});
i want to populate the products so i used
Cart.find({}).populate("products").exec(function (err, cart) {
    console.log(cart)
}
but this populates the documents in the same field name productIds and i want to populate those fields in a new field name called "products" so i tried this
let CartSchema = new mongoose.Schema({
        userId: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'User'
        },
        productIds: [
            {
                type: String
            }
        ]
    }, { toJSON: { virtuals: true } });
CartSchema.virtual('products', {
    ref: 'Product',
    localField: 'productIds',
    foreignField: '_id',
});
Cart.find({}).populate("products").exec(function (err, cart) {
    console.log(cart)
}
but returned empty array named products.so how can i populate the productIds array to a new field name products with their respective document array.
Thanks.
 
     
     
    