lunedì 14 ottobre 2013

MongoDB + Java + Query + java.util.Date() Range

eseguendo questo codice:

final DBObject query = new BasicDBObject("field_1", new BasicDBObject("$exists", false))
.append("field_2", new BasicDBObject("$exists", true))
.append("field_3", new BasicDBObject("$exists", true))
.append("time", new BasicDBObject("$gte", new Date()));


System.out.println("----> query " + query.toString());

vi restituirà:

{ "field_1" : { "$exists" : false} , "field_2" : { "$exists" : true} , "field_3" : { "$exists" : true} , "time" : { "$gte" : { "$date" : "2013-10-09T15:53:18.649Z"}}}

e invece la query viene eseguita correttamente, se voi prende questa query e la lanciate dalla shell di mongo non funziona.... ma in realtà eseguita dai driver di mongo funziona!!!!

Quindi la query visualizzata vi sta mentendo!!!!

scusate sono impazzito 2 ore per capirlo....