通过JAVA在mongodb中获取currentdate

时间:2019-02-13 06:31:05

标签: java mongodb

我正在编写一个进程,该进程每1小时运行一次,并连接到mongodb集合。 CollectionA中的文档具有关联的时间戳记密钥。然后,该过程必须搜索在我们之前获得的时间戳之后插入到另一个集合B中的所有新文档。

集合A-(只有1个documnet可以节省时间戳)
_id:属性
时间戳:ISODate(“ 2019-02-13T06:44:45.387Z”)

集合B-(具有多个可随时获取更新的文档)
但是它没有时间戳字段。

我必须从集合A中选择“时间戳”,并从集合B中检索在该时间戳之后添加的所有文档

2 个答案:

答案 0 :(得分:1)

  1. 从collectionA查找最后一个时间戳
  2. 将时间戳弹出一个fakeObjectId
  3. 使用serverTimezone
  4. 查询collectionB

这个想法来自this answer,objectId包含文档创建时间,因此我们可以弹出一个伪造的objectId作为查询过滤器。

下面的演示代码:

{ _id: { $gt: fakeObjectId} }

答案 1 :(得分:0)

您可以使用findByCreatedAtGreaterThan(LocalDateTime oneHourLessFromNow )查找数据,其中时间比现在少了一个小时。

您可以使用以下代码来计算减少一小时的时间。

LocalDateTime oneHourLessFromNow = LocalDateTime.now().minusHours(1);