Printemps De Données MongoDB Date Entre
j'utilise des données de printemps mongodb.
<!-Je veux les dossiers entre deux dates. La suite de MongoDB Requête fonctionne:db.posts.find({startDate: {$gte: start, $lt: end}});
ma tentative de traduction du code objet de la requête de données du printemps ne fonctionne pas:
Query query = new Query();
query.addCriteria(Criteria.where("startDate").gte(startDate)
.and("startDate").lt(endDate));
Quel est l'ordre correct des appels de méthode pour construire la requête Mongo dont j'ai besoin?
26
demandé sur
Patrick M
2012-04-25 11:18:23
5 réponses
N'incluez pas le 'et("date de début")' participer à vos critères.
au Lieu de :
query.addCriteria(Criteria.where("startDate").gte(startDate).and("startDate").lt(endDate));
Vous devez utiliser:
query.addCriteria(Criteria.where("startDate").gte(startDate).lt(endDate));
quand vous incluez la partie' et("startDate")', Mongo le voit comme deux entrées différentes sur la même propriété.
49
répondu
Yohan Liyanage
2012-10-29 16:42:19
Query query = new Query(
Criteria.where("ip").is(ip)
.andOperator(
Criteria.where("createdDate").lt(endDate),
Criteria.where("createdDate").gte(startDate)
)
);
3
répondu
DarwinFernandez
2017-01-30 21:24:49
Cela fonctionne sur la version 2.7.2 du pilote Java
DBCollection coll = db.getCollection("posts");
BasicDBObject date = new BasicDBObject();
date.append("$gte", new Date(startDate));
date.append("$lte", new Date(endDate));
DBObject query = new BasicDBObject();
query.put("date", date);
DBCursor cursor = coll.find(query);
aussi, pour l'enregistrement, vous avez "startDate" pour les paramètres gte et lte.
2
répondu
user1367351
2012-05-01 09:14:47
j'ai dû trouver des dates entre sur le champ publishedDate
et voici comment je l'ai fait:
Criteria publishedDateCriteria = Criteria
.where("publishedDateObject").gte(psDate)
.lte(peDate);
Query query = new Query(publishedDateCriteria);
mongoTemplate.find(query,
MyDocumentObject.class));
1
répondu
James Jithin
2015-09-27 16:05:33
Cela fonctionne, il est un exemple de code:
Criteria criteria = Criteria.where("pt").gte(startDate)
.andOperator(Criteria.where("pt").lt(endDate));
0
répondu
user2735611
2015-06-08 17:29:17