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?