我在spring数据mongodb上遇到了一个问题,在一个方法中,我请求一个简单的"查找"来检索~1000个文档.
我的春天数据代码在这里:
Query myquery = query(where("ipp").is(ipp).and(CODE_MESURE).in(codes).and(DATE_MESURE).gte(iDateDebut).lt(iDateFin));
return template.find(myquery, MessageMongo.class);
Run Code Online (Sandbox Code Playgroud)
使用JProfiler,我在MongoTemplate类的"find"方法中得到了~1/2秒.注意:对MongoDB的请求不是问题,执行时间不到20ms.

但是如果尝试通过传统方式使用mongo java驱动程序请求相同的查询:
final DBCollection collection = template.getCollection(Constantes.MONGO_COLLECTION_MESSAGES_PARAMETRES_VITAUX);
final DBCursor cursor = collection.find(myquery.getQueryObject());
final List<MessageMongo> tab = new ArrayList<>();
while (cursor.hasNext()) {
final DBObject d = cursor.next();
tab.add(new MessageMongo((String) d.get("origine"), (String) d.get("appareil"),
(String) d.get("chambre"), (String) d.get("lit"), (String) d.get("uf"), (String) d.get("ipp"),
(String) d.get("domaineIpp"), (String) d.get("iep"), (String) d.get("domaineIep"), (String) d.get("ej"),
((Date) d.get("dateReception")).toInstant(), (String) d.get("codeMesure"),
(String) d.get("uniteMesure"), (Double) d.get("valeurMesure"), ((Date) d.get("dateMesure")).toInstant()));
}
return tab;
Run Code Online (Sandbox Code Playgroud)
我的方法在~140ms内执行(比mongoTemplate样式快10倍!)
是否有Spring Data Mongo中的错误,或者我错过了配置的内容?我更喜欢写,更容易阅读,但性能很差:'(
Document类:
@Document(collection …Run Code Online (Sandbox Code Playgroud)