Yaklaşık 400 gramlık bir mongodb var. Belgeler çeşitli alanlar içerir, ancak burada anahtar bir dizi kimliktir.mongoDB'deki büyük dizide nasıl toplanır?
Yani bir json dosyası odak değişken burada "anahtar" bu
{
"name":"bob"
"dob":"1/1/2011"
"key":
[
"102",
"1234123222",
"5021297723"
]
}
gibi görünebilir. 50 milyon belgede yaklaşık 10 milyar toplam anahtar vardır (bu nedenle her belgenin yaklaşık 200 tuşu vardır). Tuşlar tekrarlanabilir ve yaklaşık 15 milyon UNIQUE anahtar vardır.
Yapmak istediğim 10.000 en sık kullanılan anahtarı döndürmektir. Toplamın bunu yapabileceğini sanıyordum, ama koşmak için çok fazla sorun yaşıyorum. İşte benim kodum:
db.users.aggregate(
[
{ $unwind : "$key" },
{ $group : { _id : "$key", number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 10000 }
]
);
Herhangi bir fikrim yanlış yaptığım var mı?
Karşılaştığınız sorun nedir ve MongoDB'nizin sürümü nedir? – Wizard
Im çalıştırıyorum 2.6.4.Hata alıyorum $ grup için aşıldı bellek sınırı, – AlexKogan