2 x 匹配标准显示没有结果
2 x criteria for Match showing no results
我正在尝试显示记录总和大于或等于 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",
},
},
]);
每个预订都有自己的状态。因此,您需要将其添加为 $group
的一部分
{
$group: {
_id: {
status: "$status",
"d": {
$dateToString: {
format: "%Y/%m/%d",
date: "$bookingDate",
}
},
},
totalBookings: {
$sum: 1,
},
}
}
然后你需要改变你的匹配如下
$match: {
totalBookings: {
$gte: 4,
},
"_id.status": "Accepted",
}
它将为您提供给定 BookinDate 的所有已接受预订,该日期 >= 4。
我正在尝试显示记录总和大于或等于 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",
},
},
]);
每个预订都有自己的状态。因此,您需要将其添加为 $group
{
$group: {
_id: {
status: "$status",
"d": {
$dateToString: {
format: "%Y/%m/%d",
date: "$bookingDate",
}
},
},
totalBookings: {
$sum: 1,
},
}
}
然后你需要改变你的匹配如下
$match: {
totalBookings: {
$gte: 4,
},
"_id.status": "Accepted",
}
它将为您提供给定 BookinDate 的所有已接受预订,该日期 >= 4。