2012-02-01 5 views
10

J'ai une requête mongo à exécuter:requête Mongo ISODate en Java

query = { "dateField" : { "$gte" : ISODate('2011-11-10T07:45:32.962Z') } } 

Quand je fais une db.Collection.find(query) sur la coquille mongo, je suis en mesure de récupérer les résultats.

Comment puis-je effectuer une requête en utilisant Java? J'ai essayé de construire une chaîne basée sur le paramètre Date. Mais dans le processus de construction de la chaîne, il finit par être passé comme "ISODate('2011-11-10T07:45:32.962Z')" au lieu de ISODate('2011-11-10T07:45:32.962Z') (sans les guillemets).

Quelle serait la meilleure façon de construire cette requête en utilisant l'API Java?

Merci!

+2

N'utilisez pas de chaînes. Les chaînes ne sont pas des dates. –

Répondre

20

Utilisez une date Java régulière - Je recommande aussi le QueryBuilder:

Date d = new Date(); // or make a date out of a string... 
DBObject query = QueryBuilder.start().put("dateField").greaterThanEquals(d).get(); 
+0

Cela a fonctionné. Merci ! – Skynet

+2

Oui, c'est l'équivalent Java de ISODate(). Essayez d'exécuter la requête plutôt que de regarder toString(). –

4

J'ai beaucoup de recherche et de passer plus d'une heure pour trouver comment obtenir des données en ayant ISODate dans le modèle mongo.

Comme le constructeur par défaut de date est obsolète, il ne fonctionnait pas dans mon cas.

BasicDBObject searchQuery = new BasicDBObject("_id" , 1); 
try { 
     searchQuery.append("timestamp",BasicDBObjectBuilder.start("$gte",new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'").parse("2015-12-07T10:38:17.498Z")).get()); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Est-ce une réponse ou un commentaire? Si c'est une réponse, s'il vous plaît [modifier] pour clarifier comment il répond à la question. – Mogsdad

+0

Ceci est la réponse, je dis que le simple 'Date' ne fonctionne pas car il est obsolète et cette chose' SimpleDateFormat' fonctionnait bien dans mon cas. – Root

Questions connexes