我試圖在時間間隔內對 Orders 陣列進行分組,并按日期對它們進行分組,對它們進行排序,并將所有訂單分成幾天。但是,我還想對每天排序的訂單陣列進行排序。
Orders.aggregate([{
$match: {
'created_at': {
$gte: timeInterval, //match last 3 days
}
}
}, {
"$group": {
_id: {
$dateToString: { format: "%d/%m/%Y", date: "$created_at", timezone: "Australia/Melbourne" } // group by date
},
orders: { $push: '$$ROOT' }
}
}, {
$sort: { '_id': -1 } // sort by date
}])
const OrderSchema = new Schema({
...,
created_at: {
type: Date,
default: Date.now
},
})
exData=[{_id: 26/12/2021, orders:[...]},{_id: 25/12/2021, orders:[...]}, ]
// need to sort orders array
我試過了:
{
$sort: { '_id': -1, "orders.created_at": -1 }
}
我將不勝感激任何幫助。謝謝。
uj5u.com熱心網友回復:
您的聚合管道應如下所示:
$match- 按條件過濾檔案。$sort- 按 對檔案進行排序created_at。$group-對累積欄位進行分組created_at和添加orders。
Orders.aggregate([
{
$match: {
'created_at': {
$gte: timeInterval, //match last 3 days
}
}
},
{
$sort: { "created_at": -1 }
},
{
$group: {
_id: {
$dateToString: { format: "%d/%m/%Y", date: "$created_at", timezone: "Australia/Melbourne" } // group by date
},
orders: { $push: '$$ROOT' }
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/396472.html
