繁体   English   中英

Mongo 上的查询日期不起作用

[英]Query Date on Mongo not working

我尝试在 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();

谢谢。

创建代表日期范围的日期对象,MongoDB会将它们转换为ISODate:

var start = new Date(2015, 1, 3, 1, 0),
    end = new Date(2015, 10, 22, 1, 0); 
db.collection.find({ "fecha": { "$gt": start, "$lt": end }})

我猜您的构建器中有问题,也许它生成了一些错误的查询。 mongo查询不支持$data 在mongodb中使用ISODate查看此日期查询似乎不起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM