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

Mongodb java springdata无法获取日期等于查询的结果

李俭
2023-03-14

我已经插入了一些测试记录到mongo数据库,结构如下。

{"_id": ObjectId("5563fe96a826638b48c77c26"),

“日期”:ISODate(“2015-05-02T07:00:00.326Z”),

“createdDate”:ISODate(“2015-05-26T05:03:18.899Z”),

"UpdatedDate": ISODate("2015-05-26T05:03:18.899Z"),

“状态”:0

}

现在,当我尝试使用Spring数据或通过MongoDB查询它时,我总是得到返回的结果列表大小为0。

Calendar  calendar = Calendar.getInstance();
calendar.set(2015, 4, 2, 0, 0, 0);
Query query = new Query();      
query.addCriteria(Criteria.where("date").is(calendar.getTime());
List<DateRecord> attendanceList = findAll(query, DateRecord.class);
System.out.println(attendanceList.size());

我得到了一个非常相似的结果为BasicDBObject,大小为0的列表。

DBCursor cursor;
BasicDBObject query1 = new BasicDBObject();
query1.append("date", calendar.getTime());

cursor = collection.find(query1);
System.out.println("Total objects returned "+cursor.size());    

如有任何相同的建议,我们将不胜感激。我只希望数据应该基于年、月和日返回,任何时间戳字段值都应该被忽略。

共有1个答案

印季
2023-03-14

我建议使用不同的查询-查找大于2015-4-2 00:00:00且显式小于2015-4-3:00:00:00的日期

另一种我不太感兴趣的方法是,仅为搜索目的向文档中添加一个字段(例如,在保存文档之前由java计算的“dateWithoutHour”,并假设数据不是来自其他来源)。我不喜欢它,因为我更喜欢我的数据是纯逻辑的,并且在有人提出新的搜索要求时不会改变。。。但有时我不得不求助于它)。

和往常一样,当面对一个困难的查询时,很容易考虑$where,但我不推荐它,因为它不能使用索引。

 类似资料:
  • 问题内容: 如果我有一个表列,,, 并且我想运行一个sql查询以获取数据集中最早的记录。 您可以在查询中执行此操作,还是需要在事实之后循环? 我想获取该记录的所有字段。 问题答案: 如果您只想要日期: 如果您需要所有信息: 尽可能避免循环。循环通常会导致游标,游标几乎从来没有必要,而且常常效率很低。

  • 如何使用BETWEEN运算符选择存储为varchar(格式:“2012.04”)的日期? 我需要在此字段上选择一年间隔。 现在我正在尝试,但这会导致我的MySQL语法错误: 日期现在是静态的(用于测试),但我需要计算BETWEEN中的第二个值,以便它与BETWEEN部分的第一个值精确为-1年。 非常感谢你!!

  • 我想在PostgreSQL中将时间戳和日期名称等同起来,并且我想要关于日期名称的结果集。我也尝试使用子查询和一些函数,但出现语法错误和函数不存在SQL错误。请帮忙。 我试图使用to_char和to_timestamp函数,但当我将它们绑定到子查询时,我会遇到语法错误。首先,我写了这个从时间戳中提取日期的查询。 然后我尝试在代码中显示的子查询中使用此查询。 我得到的错误是 SQL错误[42883]:

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

  • 我试图得到两个日期的millis值并将它们减去另一个。当我使用ctx._sourse.begin_time.toInstant(). toEpochMilli()像它给我运行时错误。和(像这样使用现有列值更新弹性搜索的所有文档)给我运行时错误 < code>ctx的类型。_source如果此代码工作正常< code > doc[' begin _ time ']. value . to insta

  • 本文向大家介绍php获取本周开始日期和结束日期的方法,包括了php获取本周开始日期和结束日期的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取本周开始日期和结束日期的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。