我已经创建了这个架构。
routes: [
{
origin: {
title: {type:String,uppercase:true,required:true},
isRegion: Boolean
},
destination: {
title: {type:String,uppercase:true,required:true},
isRegion: Boolean
},
carrier: [
{
name: {type:String,uppercase:true,required:true},
category:[
{
title: {type:String,required:true},
classes: [
{
title: {type:String,uppercase:true,required:true},
commission: Number
}
]
}
]
}
]
}
],
regions: [
{
title: {type:String,uppercase:true,required:true},
towns: [
{
name: {type:String,uppercase:true,required:true}
}
]
}
],
contractOwner: {type:String,uppercase:true}
这是针对进行交货旅行的员工的合同,该交货产品可以由承运人交付,根据该承运人可能具有不同的类别,并且对于每个类别都呈现一个具有交付佣金的类别。同样,这些订单是从原产地到目的地。这些地区包括合同规定的某些城镇。
问题在于,当工人收到订单时,它是从一个镇到另一个镇的请求,在某些情况下,他们是通过特定的承运人和类别来订购的。因此,第一件事是寻找原产地镇,如果它属于一个区域,同样是目的地镇,则在此检查之后再次对找到的区域进行过滤,并通过“过滤器”操作深入子文档中查找其他过滤器在聚合管道的“项目”中。
所有这些操作都需要花费很多时间,并且索引并不是那么支持,我认为也许可以改进模式,或者在任何情况下都可以改善管道。
感谢您的提前帮助