query mongotemplate example data conectar con java spring spring-data mongodb-java

java - mongotemplate - Datos de primavera MongoDB fecha entre



spring mongorepository (5)

Esto funciona en la versión 2.7.2 del controlador 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);

Además, para el registro tiene "startDate" para los parámetros gte y lte.

Yo uso la primavera de datos mongodb.

Quiero los registros entre dos fechas. La siguiente consulta de MongoDB funciona:

db.posts.find({startDate: {$gte: start, $lt: end}});

Mi intento de traducción de código de objeto de consulta de datos de Spring no funciona:

Query query = new Query(); query.addCriteria(Criteria.where("startDate").gte(startDate) .and("startDate").lt(endDate));

¿Cuál es el orden correcto de las llamadas a métodos para construir la consulta Mongo que necesito?


Funciona, es un código de ejemplo:

Criteria criteria = Criteria.where("pt").gte(startDate) .andOperator(Criteria.where("pt").lt(endDate));


No incluya la parte '' y ("fecha de inicio") en sus criterios.

En lugar de :

query.addCriteria(Criteria.where("startDate").gte(startDate).and("startDate").lt(endDate));

Deberías usar:

query.addCriteria(Criteria.where("startDate").gte(startDate).lt(endDate));

Cuando incluye la parte ''y ("fecha de inicio")'', Mongo lo ve como dos entradas diferentes en la misma propiedad.


Tuve que encontrar fechas entre el campo publishedDate Fecha y aquí es cómo lo hice:

Criteria publishedDateCriteria = Criteria .where("publishedDateObject").gte(psDate) .lte(peDate); Query query = new Query(publishedDateCriteria); mongoTemplate.find(query, MyDocumentObject.class));


Referencia aqui

Query query = new Query( Criteria.where("ip").is(ip) .andOperator( Criteria.where("createdDate").lt(endDate), Criteria.where("createdDate").gte(startDate) ) );