【问题标题】:spring data mongodb - insert a date plus some days using mongodb server timespring data mongodb - 使用 mongodb 服务器时间插入一个日期加上几天
【发布时间】:2021-10-26 00:44:42
【问题描述】:

在 Oracle 中,我们可以使用 sysdate 并在插入日期的同时对其进行算术运算,从而不依赖于 java 应用服务器时间。

我知道我们可以通过 Spring 数据中的 Update.currentDate 使用 $currentDate 更新修饰符,但是例如如何添加 X 天?

这个问题是关于 MongoDB 而不是 Oracle。 :-)

【问题讨论】:

  • 我不认为你可以在插入时做到这一点。但是在 4.2 更新中可以接受聚合管道,因此您可以使用 $dateAdd。

标签: java spring spring-boot spring-data-mongodb


【解决方案1】:

您可以通过 INTERVAL 语句执行此操作,但当您将天数转换为小时数时,它可以正常工作。

请像这样构建您的查询。

@Query(value = "select * from activation_codes a where a.type = :type and a.id_account = :id_account and a.creation_time <= NOW() - :hoursAgo * INTERVAL '1 hour'", nativeQuery = true)
List<ActivationCode> getAllAddedAtLeastXHoursAgo(@Param("id_account") int id_account, @Param("type") int type, @Param("hoursAgo") int hoursAgo);

这将帮助您将 DateTime 与 x-days 进行比较(将天数转换为小时数)。

【讨论】:

  • 关于 mongoDB 不是 Oracle 的问题。
猜你喜欢
  • 2016-02-14
  • 2012-05-05
  • 2014-09-24
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
相关资源
最近更新 更多