Mam monondbę około 400 gb. Dokumenty zawierają różne pola, ale kluczem jest tutaj tablica identyfikatorów.Jak agregować na ogromnej tablicy w mongoDB?
Więc plik json może wyglądać następująco
{
"name":"bob"
"dob":"1/1/2011"
"key":
[
"102",
"1234123222",
"5021297723"
]
}
Zmienna ogniskowa Oto „klucz”. Istnieje około 10 miliardów kluczy ogółem w 50 milionach dokumentów (więc każdy dokument ma około 200 kluczy). Klucze można powtórzyć, a istnieje około 15 milionów kluczy UNIQUE.
Co chciałbym zrobić, to zwrócić 10 000 najczęściej używanych kluczy. Myślałem, że agregacja może to zrobić, ale mam wiele problemów z uruchomieniem tego. Oto mój kod:
db.users.aggregate(
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 }
]
);
Jakieś pomysły, co robię źle?
Jakie problemy napotkałeś i jaka jest wersja Twojego MongoDB? – Wizard
Im działa 2.6.4. Błąd, który dostaję, to Przekroczono limit pamięci dla $ group, – AlexKogan