Кажется, проблема связана с тем, как вы используете функцию Timestamp.
Таким образом, значение (ISODate («2012-12-15T00: 00: 00Z»). GetTime()) составляет 1355529600000, что составляет в основном число миллисекунд с 1970/01/01, см. mongodb converting isodate to numerical value.
Ошибка возникает, когда вы используете это значение 1355529600000 в качестве первого параметра функции Timestamp, которая ожидает, что первый параметр будет в секундах с максимальным значением 2147483647. Возможно, вы захотите изменить способ использования метки времени функция, основанная на ваших требованиях.
См результат 2 работает, сначала с помощью GetTime(), а второй из вызывающей функции Timestamp:
1.
$ var ts = ISODate("2012-12-15T00:00:00Z").getTime()
$ ts
1355529600000
2.
$ var ts = Timestamp(ISODate("2012-12-15T00:00:00Z").getTime(),0)
2015-12-17T21:42:43.876+0530 E QUERY Error: The first argument must be in seconds; 1355529600000 is too large (max 2147483647)
at (shell):1:10