У меня есть коллекция заказов в MongoDB, например:
{"user_id": 1, "order_id": 1, "order_value": 1000, "createdAt": "2018-09-22T10:32:43.566Z"}
{"user_id": 1, "order_id": 2, "order_value": 2000, "createdAt": "2018-09-23T10:32:43.566Z"}
{"user_id": 2, "order_id": 3, "order_value": 500, "createdAt": "2018-09-24T10:32:43.566Z"}
{"user_id": 2, "order_id": 4, "order_value": 1500, "createdAt": "2018-09-24T10:32:43.566Z"}
Проблема довольно проста, просто для вычисления общей группы значений заказа по "user_id" для каждого месяца:
{"user_id": 1, "total_order_value": 3000, "year": "2018", "month": "09"}
{"user_id": 2, "total_order_value": 2000, "year": "2018", "month": "09"}
Решение, которое я знаю и уже использовал, заключается в использовании Aggregation в MongoDB.Но когда число пользователей и заказов увеличится на сотни тысяч или даже миллион документов, запрос вскоре будет замедлен (запрос будет выполняться сервером Nodejs).Разбивка на страницы - это тоже вариант, но мне нужно извлечь всю стоимость заказа для всех пользователей в лист.
Итак, я хочу попросить несколько предложений и предложений по моей проблеме, а также по дизайну базы данных.Большое спасибо позже!