gpt4 book ai didi

java - 日期的 Mongodb 查询没有结果(java)

转载 作者:可可西里 更新时间:2023-11-01 09:55:53 27 4
gpt4 key购买 nike

我的 mongodb 查询没有返回任何结果,我也不知道为什么。

我的数据相关内容如下:

> db.reports.find({},{endDate:1})
{ "_id" : ObjectId("5182882ae4b032c67674c494"), "endDate" : ISODate("2013-05-02T15:37:11.032Z") }
{ "_id" : ObjectId("51828859e4b032c67674c495"), "endDate" : ISODate("2013-05-02T15:37:57.749Z") }

所以我有两个日期为 2013-05-02 15:37:11-57 的条目

我想查找日期小于或等于该最新日期的所有条目,但使用此查询我没有得到任何结果:

db.reports.find({ "endDate" : { "$lte" : { "$date" : "2013-05-02T15:37:11.032Z"}}},{endDate:1})

我正在使用 java 生成查询:

BasicDBObject oldReportSelector = (BasicDBObject) BasicDBObjectBuilder.start()
.add("endDate",
BasicDBObjectBuilder.start().add("$lte",myDate).get())
.get();

我在这里做错了什么?

编辑添加:myDate 是使用以下方法计算的:

Date endDate = new Date()
Date myDate = new Date(endDate.getTime()-(interval*quantityArchivedReports));

当前时间间隔 = 86400000 和 quantityArchivedReports = 4

最佳答案

你在 shell 中没有得到任何东西的原因是你没有使用 shell 期望的日期格式。尝试将您的查询更改为:

> db.reports.find({ "endDate" : { "$lte" : new Date("2013-05-02T15:37:11.032Z")}})

{ "_id" : ObjectId("5182882ae4b032c67674c494"), "endDate" : ISODate("2013-05-02T15:37:11.032Z") }

然后您可以使用 shell 来验证您的代码是否实际生成了正确的日期以取回任何数据。

关于java - 日期的 Mongodb 查询没有结果(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com