Я хочу узнать, насколько эффективен торговый представитель в компании по заказам, которые они представили. Таким образом, я создал группу по имени торгового представителя и общей выручке в модели счета. Модель счета-фактуры представляет собой схему счета-фактуры, которая отправляется торговым представителем.
analytics.controller. js
exports.topBestSalesrep = (req,res)=> {
Invoice
.aggregate(
[
{
$group : {
_id : '$salesrepName',
totalSum:{$sum:'$totalValue'}
}
},
{
$sort:{totalSum:-1}
},
{
$limit : 10
},
// {
// $project:{ _id:1, area:'$customerArea' }
// }
]
)
.then(data=>{
return res.status(200).json(data);
})
.catch(err =>{
return res.status(400).json(err);
})
}
invoice.model. js
const mongoose=require('mongoose');
const Schema=mongoose.Schema;
const invoiceSchema = new Schema({
_id: mongoose.Schema.Types.ObjectId,
invoiceNo: {
type: Number,
required: true
},
salesrepName: {
type: String
},
customerName: {
type: String,
required: true
},
customerArea:{
type:String,
required:true
},
totalValue: {
type: Number,
required: true
},
orderDate: {
type: Date,
default: Date.now
}
},
{collection:'orders'});
const Invoice = mongoose.model('invoices',invoiceSchema);
module.exports=Invoice;
Здесь я хочу указать имя и область торгового представителя в возвращенных документах. Но даже если я использовал $project
, я получаю только поля salesrepName
и totalSum
в восстановленных документах. Как я могу получить поле customerArea
в возвращенных документах?