Агрегировать и обновлять 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 для прошлой недели. Лечение очень медленное, есть ли у вас представление о том, как выполнить его лучше?