Hello everybody i have this bad code for me how i can optimize it ?
If i used SQL i can do used inner Queries in one query...
"User" it's only object from mongoose
  getProfile: async (req, res) => {
        const { id } = req.params;
        try {
            const {
                image,
                name,
                gender,
                about,
                email,
                phone,
                address
            } = await User.findById({ _id: id }).select('image name gender about email phone address');
            const subscriptions = await Subscriber.countDocuments({ userId: id });
            const subscribers   = await Subscriber.countDocuments({ subscriberId: id });
            const user = {
                image,
                name,
                gender,
                subscriptions,
                subscribers,
                about,
                email,
                phone,
                address
            };
            res.json(user);
        } catch (err) {
            console.log(err);
        }
    }
PS. I only study with this technologies
If i used spread operator of result of my query from User i have like this:

And that what i have in result
module.exports = {
    getProfile: async (req, res) => {
        const { id } = req.params;
        try {
            const [data, subscriptions, subscribers] = await Promise.all([
                User.findById( { _id: id },
                    {
                        __v: false,
                        password: false,
                        date: false,
                        _id: false
                    },
                ),
                Subscriber.countDocuments({ userId: id }),
                Subscriber.countDocuments({ subscriberId: id })
            ])
            const user = {
                ...data._doc,
                subscriptions,
                subscribers
            }
            res.json(user);
        } catch (err) {
            console.log(err);
        }
    }
 
     
    