Aggregiere und aktualisiere MongoDB

Ich habe 2 Sammlungen:

Kunden (6 000 000 Dokumente)Aufträge (50 000 000 Dokumente)

Einmal am Tag möchte ich die Anzahl der Bestellungen im vergangenen Jahr, im vergangenen Monat und in der vergangenen Woche und dergleichen nach Kunden berechnen.

Ich habe es versucht:

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

Ich muss dies dreimal tun, 1 für die Aggregation des letzten Jahres, 1 für den letzten Monat und 1 für die letzte Woche. Die Behandlung ist sehr langsam. Haben Sie eine Idee, wie Sie sie besser durchführen können?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage