我試圖顯示記錄總和大于或等于 4 并且狀態與字串匹配的結果。如果我離開該status欄位,它作業正常,但添加它總是會給我一個空陣列,即使應該有資料。
const bookings = await Booking.aggregate([
{
$group: {
_id: {
$dateToString: {
format: "%Y/%m/%d",
date: "$bookingDate",
},
},
totalBookings: {
$sum: 1,
},
},
},
{
$match: {
totalBookings: {
$gte: 4,
},
status: "Accepted",
},
},
]);
uj5u.com熱心網友回復:
每個預訂都有自己的狀態。因此,您需要將其添加為$group
{
$group: {
_id: {
status: "$status",
"d": {
$dateToString: {
format: "%Y/%m/%d",
date: "$bookingDate",
}
},
},
totalBookings: {
$sum: 1,
},
}
}
然后你需要改變你的比賽如下
$match: {
totalBookings: {
$gte: 4,
},
"_id.status": "Accepted",
}
它將在給定的 BookinDate 上為您提供所有已接受的預訂,該 BookinDate >= 4。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/474295.html
下一篇:更新嵌套欄位中的值?
