O problema provavelmente é que qualquer um dos campos indicados é realmente armazenado como
Double em vez de Long . Como você pode ver no código-fonte do
Document classe, no getLong método, você pode encontrar o seguinte:return (Long) get(key);
Este elenco é o que está causando o erro relatado pelo driver do Mongo.
É possível que alguns de seus timestamps sejam criados com Javascript e NodeJS, talvez com o shell Mongo? Se for esse o caso, dependendo de como você cria o timestamp, o valor do seu campo pode ser inserido como
double devido à forma como os números são representados em Javascript. O shell mongo a documentação indica :
E :
O problema foi documentado aqui no SO neste pergunta . É bastante datado, mas pode ser uma possível explicação para o seu problema.
Este artigo , embora também bastante datado e não diretamente relacionado ao seu problema, fornece algumas informações adicionais.