Untitled
unknown
plain_text
6 months ago
1.2 kB
3
Indexable
exports.getOrderDetails = catchAsync(async (req, res, next) => { const { id } = req.params; const pathsAndFields = { path: 'products.product', select: ['name', 'images'] }; //const order = await Order.findById(toObjectId(id, next)).populate(pathsAndFields); const results = await Order.aggregate([ { $match: {_id:toObjectId(id, next)} }, { $lookup: { from: 'products', localField: 'products.product', foreignField: '_id', pipeline: [{ $project: {name:1 , image:1} }], as: 'products' } }, { $lookup: { from: 'salesmen', localField: 'sales_man', foreignField: '_id', pipeline: [{ $lookup: { from: 'users', localField: '_id', foreignField: 'profile', pipeline: [{ $project: { name: 1 } }], as: 'clientName' } }], as: 'salesmanName' } }, ]); results[0].salesmanName = results[0]?.salesmanName?.at(0)?.clientName?.at(0)?.name; res.status(200).json({ message: 'success', order: results[0] }); });
Editor is loading...
Leave a Comment