2013-05-02 2 views
3

내 mongodb 쿼리는 결과를 반환하지 않으며 이유를 찾을 수 없습니다. 나는 모든 항목을 찾으려면 11-57날짜에 Mongodb 쿼리 결과가 없습니다 (자바)

: 37 :

> 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년 5월 2일있는 항목 (15)이 : 여기

내 데이터의 관련 내용입니다 날짜보다 작거나 그 최신 날짜와 동일,하지만 난 얻을이 쿼리를 사용하여 검색 결과가 없습니다 :

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

내가 사용 자바에서 쿼리를 생성하고 :

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 당신은 쉘에서 아무것도 못하고 있습니다 이유는 당신이를 사용하지 않는 것입니다 = 4

+0

자바 코드에서 사용하고있는 'myDate' 변수는 무엇입니까? 클래스와 가치는 무엇입니까? –

+0

http://stackoverflow.com/questions/13752616/mongodb-java-drivers-search-by-date-range –

+0

파벨 : 추가 정보를 추가했습니다. 판게아 : 링크를 가져 주셔서 감사합니다. DateTime을 사용하도록 변경할 수는 있지만, 왜 내가 가지고있는 것이 작동하지 않는지 이해할 수 있습니다. Mongodb는 java.util.Date를 기본적으로 지원하므로 내 쿼리에 문제가있을 것입니다. – Abby

답변

0

quantityArchivedReports 쉘이 예상하는 날짜 형식. 에 검색어를 변경해보십시오 : 코드가 실제로 데이터를 다시 얻거나하지 않는 것이 정확한 날짜를 생성 한 경우 다음 확인하려면 쉘을 사용할 수 있습니다

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

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

.

관련 문제