#java #mongodb #spring-boot #microservices #aggregation
#java #mongodb #spring-boot #микросервисы #агрегация
Вопрос:
Я работаю над проектом spring boot и использую MongoDB в качестве своей базы данных.
Существует база данных studentDB, которая содержит документ student, и эти документы содержат следующие поля:
_id , имя_студента, посещение_лектории, iso_dom, iso_dow, iso_month, iso_year, iso_week».
студенческий документ
_id Object
student_name String
attend_lecture int
iso_dom int date of the month ("1" January 2015)
iso_dow int day of the week (Friday)
iso_month int the month (1 stand for January)
iso_year int year (2015)
iso_week int week number (1)
Здесь я пытаюсь получить, сколько студентов посещали лекции в диапазоне дат с 12 января 2015 года по 13 марта 2015 года?
Методы, которые я пробовал:
-
Я использовал агрегацию с предложением less than и greater than в MongoDB.
-
Я также использовал дату предложения part, когда извлекал все даты с 12 января 2015 года по 13 марта 2015 года.
Проблема: Есть ли какой-либо возможный способ узнать, сколько студентов посещали лекции в диапазоне дат с 12 января 2015 года по 13 марта 2015 года?
Пример:
студенческий документ
"_id":"5c1639b3a1b32bb04547137f",
"student_name":"MR. Rahul"
"iso_dom":12,
"iso_dow":3,
"iso_month":1,
"iso_week":12,
"isp_year":2018,
"attend_lecture":5
Ответ №1:
Вставьте новую ключевую дату, которая дает возможность выбирать документы между двумя датами, и с помощью функции aggregate получите, сколько студентов посетили лекции в диапазоне дат с 12 января 2015 года по 13 марта 2015 года.