gpt4 book ai didi

java - Vava 查询 MongoDB : find event in a specific date range

转载 作者:可可西里 更新时间:2023-11-01 09:16:57 25 4
gpt4 key购买 nike

我在 MongoDB 中有以下文档:

{
"_id" : NumberLong(44),
"_class" : "la.test.app.server.model.Event",
"orgId" : NumberLong(2),
"typeCode" : 1,
"title" : "Test for notification",
"shortDescription" : "Test for notification",
"description" : "Test for notification",
"price" : "100",
"startDate" : ISODate("2015-02-08T16:30:07.000Z"),
"endDate" : ISODate("2015-02-09T16:00:07.000Z"),
"deleted" : false
}

我需要在所有其他事件中找到这个事件。

我正在尝试用方法做这么简单的事情:

public List<Event> getPendingEvents(Date start, Date end) {
return mongoOperations.find(
Query.query(Criteria
.where("startDate").gte(start).lte(end)
.and("typeCode").is("1")),

Event.class
);

组装并返回我的查询:

 {
"startDate" : { "$gte" : { "$date" : "2015-02-08T05:29:00.000Z"} ,
"$lte" : { "$date" : "2015-02-08T05:31:00.000Z"}} ,
"typeCode":"1"
}

这个查询只找到“Fields: null, Sort: null”:

但是直接查询 MongoDB:

db.events.find({
"startDate" : {"$gte" : ISODate("2015-02-08 16:30:07.000Z"),
"$lt" : ISODate("2015-02-08 16:31:07.000Z")},
"typeCode" : 1})

找到所需的事件。

最佳答案

您是否尝试过使用 SimpleDateFormat...格式化日期?

很久以前我就试过...

//   Find documents by date of birth
Date gtDate = null;
try {
gtDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").parse("1984-05-010T8:30:00.000Z");
} catch (ParseException e) {
e.printStackTrace();
}
BasicDBObject dateQueryObj = new BasicDBObject("DateOfBirth", new BasicDBObject("$lt", gtDate));
cursor = documents.find(dateQueryObj);
while(cursor.hasNext()) {
System.out.println("\n Find documents by date of birth. \n");
System.out.println(cursor.next());
}

关于java - Vava 查询 MongoDB : find event in a specific date range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409380/

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