public async Task <List <Recipe> > Get(string?search, params Expression <Func <Recipe, object> >[] fields) { var filter = string.IsNullOrEmpty(search) ? Filter.Empty : Filter.Text(search); var projection = Projection.Combine(fields.Select(Projection.Include)); return(await Recipes.Find(filter).Project(projection).As <Recipe>().ToListAsync()); }