【发布时间】:2019-10-30 04:54:41
【问题描述】:
我有两个架构
vehicle 架构:
const VehicleSchema = new Schema({
title: {
type: String,
required: true
},
price: {
type: Number,
required: true
},
);
VehicleSchema.virtual('promotions', {
ref: 'Promotion',
localField: '_id',
foreignField: 'vehicle',
justOne: true
});
export default mongoose.model('Vehicle', VehicleSchema);
Promotion 架构:
const PromotionSchema = new Schema({
start_at: {
type: Date,
required: true
},
end_at: {
type: Date,
required: true
},
vehicle: {
type: Schema.Types.ObjectId,
ref: 'Vehicle'
},
amount:{
type:Number,
required:true
},
});
export default mongoose.model('Promotion', PromotionSchema);
每个vehicle 都有多个Promotion,并且其中一个促销活动处于活动状态(start_at 小于Date.now 和end_at 大于Date.now)
1- 我需要通过一个促销(现在处于活动状态)获取所有车辆并按start_at 对其进行排序
2- 是否可以添加名称为is_promotion 的虚拟字段并将其设置为true,如果有活动的Promotion?
注意:有些Vehicle 可能没有Promotion
【问题讨论】:
标签: node.js mongodb mongoose database-design