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.