public async Task <List <T> > GetList(JsonElement condition, IViewOption options)
        {
            FilterDefinition <T> filter = condition.ToString();

            var query = collection.Find(filter);

            query = View.MakePagination(query, options);

            query = query.Project <T>(View.BuildProjection <T>(options));

            query.Sort(View.BuildSort(options));

            return(await query.ToListAsync());
        }
        public async Task <T> GetSingle(string uniqueField, IViewOption options)
        {
            FilterDefinition <T> condition = "{" + $" \"{uniqueFieldName}\": " + $"\"{uniqueField}\"" + "}";

            var query = collection.Find(condition);

            query = View.MakePagination(query, options);

            query = query.Project <T>(View.BuildProjection <T>(options));

            query.Sort(View.BuildSort(options));

            return(await query.FirstOrDefaultAsync());
        }