Основной процесс:
- Фильтр
- Сортировка
- Группировка по
- Фасетам
Подсчет фасетов = найти количество отдельных групп - Фасет данных
Пропустить - Возьмите
- Раскрутите группу
- Замените корень, чтобы сохранить тип данных в конце.
< /ul>
Итак, теперь я попробовал написать тот же код на C#, но я продолжаю получать эту ошибку во время выполнения
Код: Выделить всё
The input type to stage[0] was expected to be BookRepository+GroupedGenere, but was Book. (Parameter 'stages') Код: Выделить всё
var filter = Builders.Filter.Eq(b => b.Year, year);
var count = AggregateFacet.Create("count", PipelineDefinition
.Create(new[]
{
PipelineStageDefinitionBuilder.Count()
})
);
var data = AggregateFacet.Create("data", PipelineDefinition.Create(new IPipelineStageDefinition[]
{
PipelineStageDefinitionBuilder.Skip(skip),
PipelineStageDefinitionBuilder.Limit(take),
PipelineStageDefinitionBuilder.Unwind(b => b.Documents),
}));
var pipeline = new EmptyPipelineDefinition()
.Match(filter)
.Sort(Builders.Sort.Descending(b => b.author))
.Group(b => b.genere, g => new Groupe
\dGenere
{
Id = g.Key,
Documents = g.ToList()
})
.Facet(count, data);
var books = await _collection.Aggregate(pipeline, cancellationToken: token).ToListAsync(token);
Но не получается создать группу внутри фасета, кто-нибудь пробовал это сделать? В C# используется строго типизированный шаблон компоновщика?
Подробнее здесь: https://stackoverflow.com/questions/791 ... but-no-luc
Мобильная версия