SELECT d.dt, (OBJECT TO_STR(v.hr):v.cnt FOR v IN arr END).*
FROM (SELECT COUNT(1) AS cnt, dt, hr
FROM orderV1
LET dt = MILLIS_TO_STR(received_date_time,"1111-11-11"),
hr = DATE_PART_MILLIS(received_date_time, "hour")
WHERE dt BETWEEN "2021-03-28" AND "2021-03-29"
GROUP BY dt, hr) AS d
GROUP BY d.dt
LETTING arr = ARRAY_AGG({d.hr, d.cnt});
If you need to generate 0 for missing date checkout Analytics N1QL Query: GROUP BY `dates` base on the given date values