Я застрял с агрегацией и проекцией в MongoDB,
я использую c# linq с драйвером mongodb ..
Мой вопрос: у меня есть список данных в mon go вот так
PartnerCode BrandCode ItemCode
PartnerA BrandA ItemA
PartnerA BrandA ItemA
PartnerA BrandA ItemB
PartnerB BrandA ItemA
PartnerB BrandA ItemA
, и я хочу преобразовать в сгруппированные Parner и Brand, но у меня есть список элементов коллекции с количеством записей и последовательностью элементов с самым высоким счетом и может быть ограничено до x элементов на группу
образец ожидаемого результата:
PartnerCode BrandCode Items
PartnerA BrandA [{ItemName : ItemA, Count: 2, Seq: 1}, {ItemName : ItemB, Count: 1, Seq: 2}]
PartnerB BrandA [{ItemName : ItemA, Count: 2, Seq: 1}]
то, что я уже сделал, это
_collection.Aggregate().Group(g => new {
g.PartnerCode,
g.BrandCode,
g.ItemCode
},
g => new
{
_id = g.Key,
Count = g.Count()
})
.SortByDescending(s => s.Count)
.Limit(10)
.ToListAsync();
, но он дает только x записей сгруппированных партнеров, брендов и товаров.
и я уже делаю это с
.GetCollection().Aggregate().Group(g => new
{
g.PartnerCode,
g.BrandCode
},
g => new
{
_id = g.Key,
Items = g.Select(s => s.ItemCode)
});
, это дает мне результат сгруппированные Партнер и Бренд, но со всеми элементами внутри него. и я застрял с получением группы элементов с наибольшим количеством элементов последовательности и ограничивающей записью внутри нее.
Заранее спасибо.