我正在使用猫鼬Js
var orderSchema = new mongoose.Schema({
product:String,
quantity:Number,
date:{type:Date , default: Date.now},
delivery_date:String,
amount:Number,
total:Number,
payment_status:{type:Boolean,default:false},
status:{type:String, default:"Placed"},
});
我真正想做的是显示日期明智的即将到来的订单即
今天(2月-1日( :- 产品A -- 100台
(2月-2日( :- 产品A -- 150台 , 产品B -- 200台
(2月-3日( :- 产品A -- 20台 , 产品B -- 400台
(2月-4日( :- 产品A -- 0台 , 产品B -- 500台 , 产品C -- 5
台.......
您可以使用聚合管道对文档进行分组
-
$match
- 筛选所有过去的日期 -
$group
- 按数据和产品分组,并$sum每个产品的数量 -
$sort
- 推送到排序数组 -
$group
- 按日期对产品进行分组 -
$addFields
- 将_id.date
映射为_id
管道
db.orders.aggregate(
[
{$match : {date : {$gte : new Date()}}},
{$group : {
_id : {date : "$date", product : "$product"},
quantity : {$sum : "$quantity"}
}
},
{$sort : {"_id.product" : 1}},
{$group : {
_id : {date : "$_id.date"},
products : {
$push : {product : "$_id.product", quantity : "$quantity"}
}
}
},
{$addFields : {_id : "$_id.date"}}
]
)