У меня есть коллекции Product и Rateplan.Я использовал агрегатное раскручивание и поиск MongoDB, чтобы получить желаемую вложенность, но не могу правильно сгруппировать группу.
productSchema = {
name:{
type:String,
},
baseprice:{
type:Number,
get:function(num) { return (num / 100).toFixed(2); },
set:function(num) { return num * 100; }
},
}
rateplanSchema = {
startdate:{type:Date},
enddate:{type:Date},
name:{type:String},
pricederived:{
type:String,
enum: ['NO','PP', 'MP', 'PN', 'MN'],
// Plus Minus
// Percent Number
// NO means dont apply derived and use strait price
},
price:{
type:Number,
get:num => (num / 100).toFixed(2),
set:num => num * 100
},
productcategory:{
type: mongoose.Schema.Types.ObjectId,
ref: Category
},
products:[ {
type: mongoose.Schema.Types.ObjectId,
ref: Product
}],
}
результат, который я пытаюсь получить, - это когда дата покупки продукта попадает между датами тарифных планов.
Product: [{
name: "headphone"
baseprice: "20"
nestedplan: [
{
startdate: "15-04-2019"
enddate: "31-04-2019"
name: "Summer Sale"
pricederived: "MN"
price: "5"
}
,
,
]
}
,
,
]