У меня есть mongodb около 400gb. Документы содержат множество полей, но здесь ключ представляет собой массив идентификаторов.
Таким образом, файл json может выглядеть следующим образом:
{
"name":"bob"
"dob":"1/1/2011"
"key":
[
"1020123123",
"1234123222",
"5021297723"
]
}
Фокальная переменная здесь - "ключ". В 50 миллионах документов имеется около 10 миллиардов общих ключей (каждый документ содержит около 200 ключей). Ключи могут повторяться, и есть около 15 миллионов ключей UNIQUE.
То, что я хотел бы сделать, - вернуть 10 000 наиболее распространенных ключей. Я думал, что агрегат может это сделать, но у меня много проблем с его запуском. Вот мой код:
db.users.aggregate(
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 }
]
);
Любые идеи, что я делаю неправильно?