当前位置: 首页 > 知识库问答 >
问题:

Mongo上的查询日期不工作

公良渝
2023-03-14

我试图在MongoDb上获取一个名为“fecha”的日志,其中包含一个日期字段。

在Java中执行代码后,我得到下一个查询:

{ "fecha" : { "$gt" : { "$date" : "2015-02-03T01:00:00.000Z"} , "$lt" : { "$date" : "2015-11-22T01:00:00.000Z"}}}

但是我没有得到任何结果。以下是一些数据样本:

{ "fecha" : ISODate("2015-11-17T07:47:39.709Z") }
{ "fecha" : ISODate("2015-11-17T07:47:42.760Z") }
{ "fecha" : ISODate("2015-11-17T07:47:45.069Z") }
{ "fecha" : ISODate("2015-11-17T07:47:46.874Z") }
{ "fecha" : ISODate("2015-11-17T07:47:47.831Z") }
{ "fecha" : ISODate("2015-11-17T07:47:49.838Z") }
{ "fecha" : ISODate("2015-11-17T07:47:50.867Z") }
{ "fecha" : ISODate("2015-11-17T07:47:53.534Z") }
{ "fecha" : ISODate("2015-11-17T07:47:55.348Z") }
{ "fecha" : ISODate("2015-11-17T07:47:59.271Z") }
{ "fecha" : ISODate("2015-11-17T07:48:06.782Z") }

我的Java代码是下一个:

Date dateI = Date.from(Instant.ofEpochMilli(0));
Date dateF = Date.from(Instant.now());

if(!fechaInicial.isEmpty()){
    dateI = Date.from(LocalDateTime.parse(fechaInicial).toInstant(ZoneOffset.UTC));
}    

if(!fechaFinal.isEmpty()){
    dateF = Date.from(LocalDateTime.parse(fechaFinal).toInstant(ZoneOffset.UTC));
}

builder.put("fecha").greaterThan(dateI).lessThan(dateF);

List<DBObject> dbo = bitacoraEjercicios.find(builder.get()).toArray();
return dbo.toString();

谢谢

共有1个答案

戚京
2023-03-14

我猜您的生成器中有一些错误,可能它生成了一些错误的查询 $数据。请参阅mongodb中的ISODate日期查询似乎不起作用

 类似资料:
  • 因此,我想运行一个查询来检索过去15天的所有与dateofActivity有关的信息。所以我使用了以下查询: 然后我注意到返回的记录并不局限于过去15天的所有活动。然后我尝试运行查询: 这并不限制查询记录。返回的记录包含了2020年12/27/的一些数据。我在查询中哪里做错了? 另外,基于这个dateofActivity字段检索过去一个月的结果的最佳方法是什么?例如,如果我想在每月的第一天运行此报

  • 我有一个带有在线和离线日期的产品pojo 我使用以下查询来获取日期为空或日期为的所有产品。但是以下查询仅在时才返回我。 有线索吗?

  • 问题内容: 我有带日期对象的文档。 初始化Firestore的代码: 查询代码: 我总是在获取所有记录,并且看起来where子句没有得到应用。在Firebase控制台上,我看到的存储为时间戳。 Firebase控制台中的文档: 问题答案: Cloud Firestore查询是不可变的,这意味着您无法更改现有查询的属性。如果通过调用方法更改值,它将成为一个新查询。因此,要解决此问题,请链接所有方法调

  • 我使用JPA和我已经使用两个表的连接,现在我的要求是我可以有可能的值的组合在哪里的条件,有些可能是null或空。 我的包含 我在查询中处理这个,它对很好,但是对于是给一个错误 嵌套异常是org.hibernate.exception.SQLGrammarExctive:无法提取ResultSet]与根本原因java.sql.SQLSynTaxError异常:ORA-00932:不一致的数据类型:预

  • 我有以下类: 枚举日: 我不确定该如何回头看。请注意假期的列表不仅仅是周六和周日。它们是乡村节日,如中国的新年等。 我正在使用Java8,因此任何重构或改进都是受欢迎的:)

  • 本实例使用有关日期处理和日期格式化的类实现一个日期查询的功能,即查询指定日期所在周的周一日期、两个指定日期间相差的天数和指定日期为所在周的星期几的日期 3 个功能。 从功能上来看,本实例至少需要定义 3 个方法,分别完成:获取指定日期所在周的周一日期、获取两个指定日期的相差天数以及获取指定日期为所在周的星期几的日期这 3 个功能,同时需要定义 Date 类型的日期与 String 类型之间的转换方