Untitled
unknown
plain_text
a year ago
1.2 kB
5
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