Пожалуйста, найдите мои образцы документов из 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
}
]
У меня есть миллион подобных записей в моей коллекции. Мне нужен эффективный способ сделать запрос, основанный на дате DOJ, когда есть вероятность, что я могу получить более миллиона записей за одну и ту же дату DOJ. Ниже приведен пример кода, который я использовал для извлечения записей с помощью 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);
Если возвращенные результаты превышают 100 000 записей, мне нужно иметь нумерацию страниц с записями, сгруппированными по каждому МЮ, или если имеет 100 000 на одну и ту же дату в DOJ, тогда у меня должен быть лог c, чтобы сгруппировать его по часам. Любая помощь высоко ценится ..