É fácil obter tempos de um
ObjectId
... no entanto, você NÃO obtém a precisão do ms. org.bson.types.ObjectId
tem 2 métodos que você pode usar nele:getTimeSecond()
e getTime()
(o mesmo que `getTimeSecond() * 1000L
). Estes irão obter o seu timestamp unix. Eu não usei o MongoDB com Spring - mas se você puder colocar as mãos no
ObjectId
real instância é tão simples quanto chamar um dos métodos acima. Agora - para consultar documentos em um intervalo de tempo, você precisa voltar e criar
ObjectId
objetos baseados em um timestamp. Novamente - isso é simples - o ObjectId
tem um construtor pode fazer isso para você:ObjectId(Date time)
Então - crie 2
ObjectId
instâncias que representam seus limites de tempo mínimo e máximo, em seguida, faça uma consulta como:db.collection.find({ "field" : { $gt: value1, $lt: value2 } } );
onde
value1
e value2
representar o ObjectId
instância que você criou via ObjectId(Date time)