Как извлечь данные из базы данных MongoDB, используя определенный диапазон дат и агрегацию в Spring Boot?

#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 года?

Методы, которые я пробовал:

  1. Я использовал агрегацию с предложением less than и greater than в MongoDB.

  2. Я также использовал дату предложения 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 года.