コード例 #1
0
ファイル: DBComponent.cs プロジェクト: z976686281/fivestar
 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();
 }
コード例 #2
0
        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));
        }
コード例 #3
0
        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());
            }
        }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
        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));
            }
        }