MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como você extrai um carimbo de data/hora de um MongoDB ObjectId no Spring Data MongoDB?


É 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)