Ho un mongodb di circa 400gb. I documenti contengono una varietà di campi, ma la chiave qui è un array di ID.Come aggregare su un enorme array in mongoDB?
Quindi un file JSON potrebbe assomigliare a questo
{
"name":"bob"
"dob":"1/1/2011"
"key":
[
"102",
"1234123222",
"5021297723"
]
}
La variabile focale qui è "fondamentale". Ci sono circa 10 miliardi di chiavi totali su 50 milioni di documenti (quindi ogni documento ha circa 200 chiavi). Le chiavi possono essere ripetute e ci sono circa 15 milioni di chiavi UNIQUE.
Quello che mi piacerebbe fare è restituire le 10.000 chiavi più comuni. Pensavo che l'aggregato potesse farlo, ma ho molti problemi a farlo funzionare. Ecco il mio codice:
db.users.aggregate(
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 }
]
);
Qualche idea su cosa sto facendo male?
Qual è il problema che hai riscontrato e qual è la versione di MongoDB? – Wizard
Im in esecuzione 2.6.4.L'errore che ottengo è Limite di memoria superato per $ gruppo, – AlexKogan