Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从MongoDB集合中查询超过100万条记录的最佳方法_Java_Mongodb_Spring Boot_Mongodb Query_Mongotemplate - Fatal编程技术网

Java 从MongoDB集合中查询超过100万条记录的最佳方法

Java 从MongoDB集合中查询超过100万条记录的最佳方法,java,mongodb,spring-boot,mongodb-query,mongotemplate,Java,Mongodb,Spring Boot,Mongodb Query,Mongotemplate,请在下面找到我的mongoDB示例文档: [ { "_id" : ObjectId("55c0e5e5511f0a164a581907"), "_class" : "sample.model.User", "name" : "Eric", "DOJ" : "2012-01-22 08:09:20.000", "age" : 45 }, { "_id" : ObjectId("5

请在下面找到我的mongoDB示例文档:

[
    {
        "_id" : ObjectId("55c0e5e5511f0a164a581907"),
        "_class" : "sample.model.User",
        "name" : "Eric",
        "DOJ" : "2012-01-22 08:09:20.000",
        "age" : 45
    },
    {
        "_id" : ObjectId("55c0e5e5511f0a164a581908"),
        "_class" : "sample.model.User",
        "name" : "Antony",
        "DOJ" : "2011-07-22 08:09:20.000",
        "age" : 33
    },
    {
        "_id" : ObjectId("55c0e5e5511f0a164a581909"),
        "_class" : "sample.model.User",
        "name" : "Alice",
        "DOJ" : "2018-05-01 08:16:20.000",
        "age" : 35
    }
]
我收藏了数百万张这样的唱片。我需要一种基于司法部日期的高效查询方法,在这种情况下,我可能会在同一司法部日期获得超过一百万条记录。请在下面找到我使用mongoTemplate获取记录时使用的示例代码:

Criteria criteria = new Criteria().andOperator(Criteria.where("DOJ").gte("2018-01-01 08:10:00.000"), Criteria.where("DOJ").lte("2020-01-01 08:10:00.000"));
Query query = new Query(criteria);
List<User> users = mongoTemplate.find(query,User.class);
Criteria=new Criteria().andOperator(Criteria.where(“DOJ”).gte(“2018-01-01 08:10:00.000”)、Criteria.where(“DOJ”).lte(“2020-01-01 08:10:00.000”);
查询=新查询(条件);
List users=mongoTemplate.find(查询,User.class);

如果返回的结果超过100000条记录,则我需要对每个司法部分组的记录进行分页,或者如果在同一司法部日期有100000条记录,则我必须根据每小时对其进行分组。非常感谢您的帮助

旁注:Mongo集合的内容不是记录,而是文档。@Tim Biegeleisen谢谢你的注释。我想你可以先计算一下,因为你在这个标准上有不同的逻辑。然后您需要一页一页地获取文档。如果您同时需要所有这些,那么我认为没有其他方法可以使它更快(除了添加索引)。