Агрегировать и обновлять MongoDB

У меня есть 2 коллекции:

Клиенты (6 000 000 документов)Заказы (50 000 000 документов)

Раз в день я хотел бы рассчитать количество заказов в прошлом году, в прошлом месяце и на прошлой неделе и т. Д. По клиенту.

Я попробовал это:

db.orders.aggregate(
    {$match: 
        { date_order: { $gt: v_date1year } }
    },
    {$group : {
        _id : "$id_client", 
        count : {$sum : 1}
    }} ,
    {
        "$out": "tmp_indicators"
    }
)

db.tmp_indicators.find({}).forEach(function (my_client) { 
    db.clients.update (
        {"id_client": my_client._id},
        {"$set": 
            { "nb_orders_1year" : my_client.count }
        }
    )
})

Я должен сделать это 3 раза, 1 для агрегации за прошлый год, 1 для прошлого месяца и 1 для прошлой недели. Лечение очень медленное, есть ли у вас представление о том, как выполнить его лучше?

Ответы на вопрос(1)

Ваш ответ на вопрос