我正在编写一个进程,该进程每1小时运行一次,并连接到mongodb集合。 CollectionA中的文档具有关联的时间戳记密钥。然后,该过程必须搜索在我们之前获得的时间戳之后插入到另一个集合B中的所有新文档。
集合A-(只有1个documnet可以节省时间戳)
_id:属性
时间戳:ISODate(“ 2019-02-13T06:44:45.387Z”)
集合B-(具有多个可随时获取更新的文档)
但是它没有时间戳字段。
我必须从集合A中选择“时间戳”,并从集合B中检索在该时间戳之后添加的所有文档
答案 0 :(得分:1)
serverTimezone
这个想法来自this answer,objectId包含文档创建时间,因此我们可以弹出一个伪造的objectId作为查询过滤器。
下面的演示代码:
{ _id: { $gt: fakeObjectId} }
答案 1 :(得分:0)
您可以使用findByCreatedAtGreaterThan(LocalDateTime oneHourLessFromNow )
查找数据,其中时间比现在少了一个小时。
您可以使用以下代码来计算减少一小时的时间。
LocalDateTime oneHourLessFromNow = LocalDateTime.now().minusHours(1);