[英]Java Spring boot Mongodb taking too much time to retrieve results
我的 MongoDB 仅包含 3.8k 个文档,并且大部分字段都已编入索引。 此外,我通过的条件也被索引。 但是获取这些结果文档需要花费 5 分钟以上的时间,这些文档总共可能是 2k。
Java 代码:
Query query = query(where(DATE_TIME).gte(startDateLocal).andOperator(where(DATE_TIME).lte(endDateLocal)))
.with(Sort.by(Order.by("_id")));
query.fields().exclude(CarMakerDetailedSpecs);
addDefaultFilter(query);
List<CarMaker> CarMakerItems = mongoTemplate.find(query, CarMaker.class);
return CarMakerItems ;
结果查询:
{ "dateTime" : { "$gte" : { "$date" : 1484247600000}}, "$and" : [{ "dateTime" : { "$lte" : { "$date" : 1580324400000}}}], "carMaker" : { "$in" : ["Toyota", "Honda"]}} fields: Document{{carMaker.detailedSpecs=0}}
有趣的是,python 中的相同查询速度足够快,可以立即获得结果。 那么,驱动程序问题可能存在吗? 因为另一个人也在 这里抱怨或者我错过了什么? 谢谢!
我正在使用 Java Spring 启动 2.2.4.RELEASE,Mongodb。
我不知道@Query有什么特别之处,但令人惊讶的是,使用它可以将时间缩短到几秒钟。
@Query(value= "{" +
" \"dateTime\": {" +
" \"$gte\": {" +
" \"$date\": ?0" +
" }" +
" }," +
" \"$and\": [" +
" {" +
" \"dateTime\": {" +
" \"$lte\": {" +
" \"$date\": ?1" +
" }" +
" }" +
" }" +
" ]," +
" \"carMaker\": {" +
" \"$in\": [" +
" \"Toyota\"," +
" \"Honda\"" +
" ]" +
" }" +
"}",
fields =
" {" +
" carMaker.detailedSpecs=0" +
" }" +
);
List<CarMaker> findAllCarsByStartAndEndDate(LocalDate startDateLocal, LocalDate endDateLocal);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.