IQueryable en mongoDB no soporta {documento} en $project o $group.
Estoy teniendo este problema después de ejecutar Select en IQueryable
‘$project’ or ‘$group’ no admite {documento}.
public Interface IVideo
{
....
public string File { get; set;}
public bool Categorized { get; set;}
public IMovie Movie { get; set;}
....
}
public Interface IMovie
{
....
public List<string> Langauge {get; set;}
....
}
public static Dictionary<string, int=""> GetLanguage(string isp)
{
// Repository.GetVideos() es IQueryable<ivideo>
var videos = Repository.GetVideos().Where(q => q.Categorized && (
q.File == isp ||
q.File == "st"));
var language = videos.SelectMany(q => q.Movie.Language).Select(e => e);
var ql = from x in language
group x by x
into g
let count = g.Count()
orderby count descending
select new { g.Key, count }; // el problema está aquí
return ql.ToDictionary(item => item.Key, item => item.count);
}
¿Cómo puedo solucionar este problema?</string,>
davy.ai
El problema puede ser causado al intentar agrupar por un campo anidado en el conjunto de resultados IQueryable. Para solucionar esto, intenta utilizar una agregación de canalización en lugar de utilizar directamente IQueryable.
Modifica el método GetLanguage de la siguiente manera:
Este código utiliza el controlador de MongoDB C# para realizar la agregación en el lado del servidor, desenrollando el campo Movie.Language y agrupándolo antes de devolver el conjunto de resultados. Ten en cuenta que el conjunto de resultados se convierte en un Dictionary para facilitar su consumo.</string,>