Agregue e atualize o MongoDB

Eu tenho 2 coleções:

Clientes (6 000 000 documentos)Pedidos (50 000 000 documentos)

Uma vez por dia, gostaria de calcular o número de pedidos no ano passado, no mês passado e na semana passada e assim por cliente.

Eu tentei isso:

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 }
        }
    )
})

Eu tenho que fazer isso 3 vezes, 1 para a agregação do ano passado, 1 para o mês passado e 1 para a semana passada. O tratamento é muito lento, você tem uma idéia de como realizá-lo de uma maneira melhor?

questionAnswers(1)

yourAnswerToTheQuestion