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。