/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query">条件查询。 调用示例:Query.Matches("Title", "女神") 或者 Query.EQ("Title", "女神") 或者Query.And(Query.Matches("Title", "女神"),Query.EQ("Author", "yanc")) 等等</param> /// <param name="pagerInfo"></param> /// <param name="sortBy">排序用的。调用示例:SortBy.Descending("Title") 或者 SortBy.Descending("Title").Ascending("Author")等等</param> /// <param name="fields">只返回所需要的字段的数据。调用示例:"Title" 或者 new string[] { "Title", "Author" }等等</param> /// <returns></returns> public static List <T> GetAll <T>(string collectionName, IMongoQuery query, PagerInfo pagerInfo, IMongoSortBy sortBy, params string[] fields) { return(GetAll <T>(ConnectionStringDefault, DatabaseDefault, collectionName, query, pagerInfo, sortBy, fields)); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="connectionString"></param> /// <param name="databaseName"></param> /// <param name="collectionName"></param> /// <param name="query">条件查询。 调用示例:Query.Matches("Title", "女神") 或者 Query.EQ("Title", "女神") 或者Query.And(Query.Matches("Title", "女神"),Query.EQ("Author", "yanc")) 等等</param> /// <param name="pagerInfo"></param> /// <param name="sortBy">排序用的。调用示例:SortBy.Descending("Title") 或者 SortBy.Descending("Title").Ascending("Author")等等</param> /// <param name="fields">只返回所需要的字段的数据。调用示例:"Title" 或者 new string[] { "Title", "Author" }等等</param> /// <returns></returns> public static List <T> GetAll <T>(string connectionString, string databaseName, string collectionName, IMongoQuery query, PagerInfo pagerInfo, IMongoSortBy sortBy, params string[] fields) { var client = new MongoClient(connectionString); var server = client.GetServer(); //获取数据库或者创建数据库(不存在的话)。 MongoDatabase database = server.GetDatabase(databaseName); var result = new List <T>(); using (server.RequestStart(database))//开始连接数据库。 { MongoCollection <BsonDocument> myCollection = database.GetCollection <BsonDocument>(collectionName); MongoCursor <T> myCursor; if (null == query) { myCursor = myCollection.FindAllAs <T>(); } else { myCursor = myCollection.FindAs <T>(query); } if (null != sortBy) { myCursor.SetSortOrder(sortBy); } if (null != fields) { myCursor.SetFields(fields); } foreach (T entity in myCursor.SetSkip((pagerInfo.Page - 1) * pagerInfo.PageSize).SetLimit(pagerInfo.PageSize))//.SetSkip(100).SetLimit(10)是指读取第一百条后的10条数据。 { result.Add(entity); } } return(result); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query">条件查询。 调用示例:Query.Matches("Title", "女神") 或者 Query.EQ("Title", "女神") 或者Query.And(Query.Matches("Title", "女神"),Query.EQ("Author", "yanc")) 等等</param> /// <param name="pagerInfo"></param> /// <returns></returns> public static List <T> GetAll <T>(string collectionName, IMongoQuery query, PagerInfo pagerInfo) { return(GetAll <T>(ConnectionStringDefault, DatabaseDefault, collectionName, query, pagerInfo, null)); }