Since updating to MongoDB Server v5.0.6. Community Version, $dateTrunc.date thinks any date is a string. For example:
{
$expr: {
$lt: ["$paidDate", {
$dateAdd: {
startDate: {
$dateTrunc: {
date: new Date(), // <<=======
unit: "day",
binSize: 1,
timezone: "Europe/London"
}
},
unit: "day",
amount: 1,
timezone: "Europe/London"
}
}]
}
}
The above gives this error:
PlanExecutor error during aggregation :: caused by :: $dateTrunc requires 'date' to be a date, but got string
All existing queries via Compass and C++ are broken. If this is an official update to how this aggregate statement works, there is no updated documentation as far as I can see.