public async void GetCollection123456(string name) { IMongoCollection <ComponentWithId> ins = this.database.GetCollection <ComponentWithId>(name); FilterDefinition <ComponentWithId> filterDefinition = new JsonFilterDefinition <ComponentWithId>("{}"); SortDefinition <ComponentWithId> sortDefinition = new JsonSortDefinition <ComponentWithId>("{\"UserId\":1}"); IFindFluent <ComponentWithId, ComponentWithId> s = ins.Find(filterDefinition).Sort(sortDefinition).Limit(1); List <ComponentWithId> components33 = await s.ToCursor().ToListAsync(); }
private async Task <IEnumerable <Report> > GetPage(FilterDefinition <Report> filter, int pageNumber, int reportsInPage) { //Reports.AsQueryable().; //-1 убывание //1 возрастание SortDefinition <Report> reportSort = new JsonSortDefinition <Report>("{DateTime: -1}"); return(await Reports .Find(filter) .Skip((pageNumber - 1) * reportsInPage) .Limit(reportsInPage) .Sort(reportSort) .ToListAsync().ConfigureAwait(false)); }
public List <T> FindPage <T>(Expression <Func <T, bool> > filter, int pageIndex, out long total, int pageSize = 10, int sort = 0) where T : ModelBase { var coll = _ohyDB.GetCollection <T>(typeof(T).Name); total = coll.Find(filter).Count(); if (sort == 0) { return(coll.Find(filter).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } else { var s = new JsonSortDefinition <T>("{\"_id\":" + sort + "}"); return(coll.Find(filter).Sort(s).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } }
/// <summary> Gets all items in this collection asynchronously. </summary> /// <param name="jsonFilterDefinition"> A definition to filter in a json string the results. Defaults to an empty filter.</param> /// <param name="jsonSortingDefinition"> The sorting definition in a json string for the result. Defaults to sort ascending by Id.</param> /// <param name="page"> The requested page number. </param> /// <param name="pageSize"> The number of items per page.</param> /// <returns> /// An list that allows foreach to be used to process all items in this collection. /// </returns> public virtual async Task <IList <TEntity> > GetAll(string jsonFilterDefinition, string jsonSortingDefinition, int?page = null, int?pageSize = null) { JsonFilterDefinition <TEntity> filter = null; if (!string.IsNullOrEmpty(jsonFilterDefinition)) { filter = new JsonFilterDefinition <TEntity>(jsonFilterDefinition); } JsonSortDefinition <TEntity> sorting = null; if (!string.IsNullOrEmpty(jsonSortingDefinition)) { sorting = new JsonSortDefinition <TEntity>(jsonSortingDefinition); } return(await GetAll(filterDefinition : filter, sortDefinition : sorting, page : page, pageSize : pageSize)); }
public override async Task Run() { DBComponent dbComponent = Game.Scene.GetComponent <DBComponent>(); try { // 执行查询数据库任务 // FilterDefinition<ComponentWithId> filterDefinition = new JsonFilterDefinition<ComponentWithId>(this.QueryJson); // IAsyncCursor<ComponentWithId> cursor = await dbComponent.GetCollection(this.CollectionName).FindAsync(filterDefinition); // List<ComponentWithId> components = await cursor.ToListAsync(); // this.Tcs.SetResult(components); FilterDefinition <ComponentWithId> filterDefinition = new JsonFilterDefinition <ComponentWithId>(this.QueryJson); SortDefinition <ComponentWithId> sortDefinition = new JsonSortDefinition <ComponentWithId>(this.SortJson); IFindFluent <ComponentWithId, ComponentWithId> ifindiluent = dbComponent.GetCollection(this.CollectionName).Find(filterDefinition).Sort(sortDefinition).Limit(this.Count); List <ComponentWithId> components = await ifindiluent.ToCursor().ToListAsync(); this.Tcs.SetResult(components); } catch (Exception e) { this.Tcs.SetException(new Exception($"查询数据库异常! {CollectionName} {this.QueryJson}", e)); } }