Я не специалист в монге и не знаю, что именно вы в приложении хотите сделать, но похоже, что запрос date_to=2019-10-06 выдаст вам даты, строго меньшие чем 6 октября, т.е. до 5 октября. Может в этом проблема? Если нет, то распечатайте запрос к монге, который у вас получается, прям в том месте, где вы его отправляете, и если он корректный, то вам имеет смысл спросить в монго-группах, как заставить её работать.
По Go коду, раз уж вы его запостили:
1. не используйте type assertions применительно к недоверенному вводу. Например, dateFrom.(string) запаникует, если вместо строки вам передадут число, и программа упадёт.
Надо писать так: "dateFrom, fromOk := filter["date_from"].(string)", и в этом случае если уж fromOk будет истинным, то dateFrom будет содержать строку без всяких вариантов.
3. не везде аккуратно проверяются ошибки. Например тут первая ошибка игнорируется:
from, err = time.Parse(dateLayout, dateFrom.(string))
to, err = time.Parse(dateLayout, dateFrom.(string))
5. глобальная переменная data, к которой привязаны методы - это что-то очень странное. Если вы её модифицируете каждый раз, когда делаете запись в лог, делать этого из нескольких горутин уже нельзя будет - у вас будет data races и случайные повреждения данных или краши всей программы.
6. (вкусовщина) По-моему, вы немного злоупотребляете named return values. Каждый раз, когда функция делает return, приходится искать глазами и анализировать программу, чтобы понять, что же она вернёт.