public List <T> List(int pageIndex, int pageSize, Expression <Func <T, bool> > func, out int pageCount) { pageCount = 0; pageCount = Convert.ToInt32(mongoCollection.Count()); var personList = mongoCollection.Linq().Where(func).Skip(pageSize * (pageIndex - 1)) .Take(pageSize).Select(i => i).ToList(); mongo.Disconnect(); return(personList); }
public static List <PRICERANGE> GetPriceRanges() { List <PRICERANGE> retval = new List <PRICERANGE>(); using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collPriceRange = db.GetCollection <Document>(PRICERANGE.TableName); Document qRanges = new Document(); qRanges["DISPLAY_THIS_RANGE"] = "YES"; PRICERANGE[] foundranges = PRICERANGE.GetPRICERANGEsFromQueryDocument(collPriceRange, qRanges); if (foundranges != null && foundranges.Count <PRICERANGE>() > 0) { foreach (PRICERANGE range in foundranges.OrderBy(range => range.DISPLAYORDER)) { retval.Add(range); } } mongo.Disconnect(); } return(retval); }
public static List <string> GetModelsForMake(string Make) { List <string> retval = new List <string>(); using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collVehicles = db.GetCollection <Document>(VEHICLE.TableName); Document qVehicles = new Document(); qVehicles["MAKE"] = Make; qVehicles["STILL_FOR_SALE"] = "YES"; VEHICLE[] foundvehicles = VEHICLE.GetVEHICLEsFromQueryDocument(collVehicles, qVehicles); if (foundvehicles != null && foundvehicles.Count <VEHICLE>() > 0) { var result = foundvehicles.GroupBy(vehicles => vehicles.MODEL.ToUpper()) .Select(grp => grp.First()) .ToList(); foreach (VEHICLE ModelExample in result.OrderBy(c => c.MODEL)) { retval.Add(ModelExample.MODEL); } } mongo.Disconnect(); } return(retval); }
/// <summary> /// 获取一个集合下所有数据 /// </summary> /// <param name="collectionName"></param> /// <returns></returns> public static List <T> GetAllByField <T>(string collectionName, Document fields) where T : class { List <T> result = new List <T>(); using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); if (fields == null) { foreach (T entity in collection.FindAll().Documents) { result.Add(entity); } } else { foreach (T entity in collection.Find(null, fields).Documents) { result.Add(entity); } } mongo.Disconnect(); } return(result); }
public static List <VEHICLE> GetAllUnsoldVehiclesForDealer(string DealershipName) { List <VEHICLE> retval = null; using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collVehicles = db.GetCollection <Document>(VEHICLE.TableName); Document qDealer = new Document(); qDealer["DEALERSHIP_NAME"] = DealershipName; qDealer["STILL_FOR_SALE"] = "YES"; VEHICLE[] foundvehicles = VEHICLE.GetVEHICLEsFromQueryDocument(collVehicles, qDealer); if (foundvehicles != null && foundvehicles.Count <VEHICLE>() > 0) { retval = foundvehicles.ToList <VEHICLE>(); } mongo.Disconnect(); } return(retval); }
public static int InsertImageFromFile(string filename, string contenttype) { int counter = 0; Image img = Image.FromFile(filename); byte[] ImageData = imgToByteArray(img); using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collImage; collImage = db.GetCollection <Document>(IMAGE.TableName); var cursor = collImage.FindAll(); if (cursor.Documents.Count() > 0) { counter = cursor.Documents.Count(); } IMAGE pic = new IMAGE(); pic.ContentType = contenttype; pic.ImageData = ImageData; pic.ImageId = counter; pic.ImageName = Path.GetFileName(filename); pic.TimesServed = 0; IMAGE.InsertDocumentFromMEMBER(collImage, pic); mongo.Disconnect(); } img = null; return(counter); }
public static List <DEALERSHIP> GetDealerships(string ParserType) { List <DEALERSHIP> retval = null; using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collDealers = db.GetCollection <Document>(DEALERSHIP.TableName); Document qDealer = new Document(); qDealer["PARSER_TYPE"] = ParserType; qDealer["COLLECT_DATA"] = "YES"; DEALERSHIP[] founddealers = DEALERSHIP.GetDEALERSHIPsFromQueryDocument(collDealers, qDealer); if (founddealers != null && founddealers.Count <DEALERSHIP>() > 0) { retval = founddealers.ToList <DEALERSHIP>(); } mongo.Disconnect(); } return(retval); }
/// <summary> /// IDisposabl 接口的实现 用于释放资源 /// </summary> public void Dispose() { mongo.Disconnect(); if (mongo != null) { mongo.Dispose(); } }
public IQueryable <TEntity> GetModel() { try { //mongoSelect.TryConnect(); var db = mongoSelect.GetDatabase(databaseName); var collection = db.GetCollection <TEntity>(collectionName); return(collection.Linq()); } catch (Exception ex) { mongoSelect.Disconnect(); throw ex; } }
/// <summary> /// Отключаемся от БД /// </summary> /// <returns></returns> private static bool DisconnectWithMongo() { try { db.Disconnect(); return(true); } catch (Exception) { return(false); } }
/// <summary> /// 插入多个数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="entiry"></param> public static void InsertAll <T>(string collectionName, IEnumerable <T> entity) where T : class { using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); collection.Insert(entity, true); mongo.Disconnect(); } }
/// <summary> /// 更新操作 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="collectionName">表名</param> /// <param name="query">条件</param> /// <param name="entry">新实体</param> public static void Update <T>(string collectionName, Document entity, Document query) where T : class { using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); collection.Update(entity, query, true); mongo.Disconnect(); } }
public void Dispose() { if (_cursor != null) { _cursor.Dispose(); } if (_db != null) { _db.Disconnect(); } }
public static void InsertVehicle(VEHICLE veh) { using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collVehicle; collVehicle = db.GetCollection <Document>(VEHICLE.TableName); VEHICLE.InsertDocumentFromMEMBER(collVehicle, veh); mongo.Disconnect(); } }
/// <summary> /// 获取一条数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query"></param> /// <returns></returns> public static T GetOne <T>(string collectionName, Document query) where T : class { T result = default(T); using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); result = collection.FindOne(query); mongo.Disconnect(); } return(result); }
/// <summary> /// 获取一条数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query"></param> /// <returns></returns> public static T GetFirst <T>(string collectionName, Document query, Document fields) where T : class { T result = default(T); using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); result = collection.Find(query, fields).Skip(0).Limit(1).Documents.First(); mongo.Disconnect(); } return(result); }
public static void Update <T>(Expression <Func <T, bool> > finder, Action <T> updater) where T : class { if (finder is null) { throw new ArgumentNullException(nameof(finder)); } if (updater is null) { throw new ArgumentNullException(nameof(updater)); } var configuration = GetConfiguration <T>(); using (var mongo = new Mongo(configuration)) { try { mongo.Connect(); var database = mongo.GetDatabase(Resources.DatabaseName); var collection = database.GetCollection <T>(typeof(T).Name); var entity = finder is null?collection.Linq().FirstOrDefault() : collection.Linq().FirstOrDefault(finder); updater.Invoke(entity); collection.Update <T>(entity, finder, true); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } }
public static List <VEHICLE> GetVehiclesByMarketMakeModel(string market, string make, string model, string pricerange) { List <VEHICLE> retval = null; using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collPriceRange = db.GetCollection <Document>(PRICERANGE.TableName); Document qPriceRange = new Document(); qPriceRange["VALUENAME"] = pricerange; Document docPriceRange = collPriceRange.FindOne(qPriceRange); PRICERANGE pr = PRICERANGE.GetPRICERANGEFromDocument(docPriceRange); IMongoCollection <Document> collVehicles = db.GetCollection <Document>(VEHICLE.TableName); Document qVehicles = new Document(); qVehicles["MARKET"] = market; if (make.Length > 0 && make != "All") { qVehicles["MAKE"] = make; } if (model.Length > 0 && model != "All") { qVehicles["MODEL"] = model; } qVehicles["STILL_FOR_SALE"] = "YES"; string where = $"(this.CURRENT_PRICE >= {pr.LOWBOUND} && this.CURRENT_PRICE <= {pr.HIGHBOUND})"; qVehicles.Add("$where", new Code(where)); VEHICLE[] foundvehicles = VEHICLE.GetVEHICLEsFromQueryDocument(collVehicles, qVehicles); if (foundvehicles != null && foundvehicles.Count <VEHICLE>() > 0) { retval = foundvehicles.ToList <VEHICLE>(); } mongo.Disconnect(); } return(retval); }
public static void UpdateVehicleRecord(VEHICLE veh) { using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); var db = mongo.GetDatabase(VehicleRecords.VEHICLE_DB.DataBaseName); IMongoCollection <Document> collVehicles; collVehicles = db.GetCollection <Document>(VEHICLE.TableName); Document qVeh = new Document(); qVeh["VIN"] = veh.VIN; collVehicles.Remove(qVeh); VEHICLE.InsertDocumentFromMEMBER(collVehicles, veh); mongo.Disconnect(); } }
/// <summary> /// 获取列表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query"></param> /// <param name="fields"></param> /// <param name="sort"></param> /// <param name="pageindex"></param> /// <param name="pagesize"></param> /// <returns></returns> public static List <T> GetList <T>(string collectionName, object query, object fields, Document sort, int pageindex, int pagesize) where T : class { List <T> result = new List <T>(); using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); foreach (T entity in collection.Find(query, fields).Sort(sort).Skip((pageindex - 1) * pagesize).Limit(pagesize).Documents) { result.Add(entity); } mongo.Disconnect(); } return(result); }
/// <summary> /// 获取一个通过查询条件的集合下所有数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collectionName"></param> /// <param name="query"></param> /// <returns></returns> public static List <T> GetList <T>(string collectionName, object query) where T : class { List <T> result = new List <T>(); using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); foreach (T entity in collection.Find(query).Documents) { result.Add(entity); } mongo.Disconnect(); } return(result); }
public void TestCode() { //链接字符串 string connectionString = "mongodb://localhost"; //数据库名 string databaseName = "myDatabase"; //集合名 string collectionName = "myCollection"; //定义Mongo服务 Mongo mongo = new Mongo(connectionString); //获取databaseName对应的数据库,不存在则自动创建 MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase; //获取collectionName对应的集合,不存在则自动创建 MongoCollection <T> mongoCollection = mongoDatabase.GetCollection <T>(collectionName) as MongoCollection <T>; //链接数据库 mongo.Connect(); try { //定义一个文档对象,存入两个键值对 T doc = new T(); doc["ID"] = 1; doc["Msg"] = "Hello World!"; //将这个文档对象插入集合 mongoCollection.Insert(doc); //在集合中查找键值对为ID=1的文档对象 T docFind = mongoCollection.FindOne(new T { { "ID", 1 } }); //输出查找到的文档对象中键“Msg”对应的值,并输出 Console.WriteLine(Convert.ToString(docFind["Msg"])); } finally { //关闭链接 mongo.Disconnect(); } }
public void Run() { var category = categories.FindOne(new Document { { "name", "Bluez" } }); Console.WriteLine("The id findOne" + category["_id"]); var selector = new Document { { "_id", category["_id"] } }; category["name"] = "Bluess"; //The following will do the same thing. categories.Save(category); Console.WriteLine("Category after one update " + categories.FindOne(selector)); category["name"] = "Blues"; categories.Update(category, selector); Console.WriteLine("Category after two updates " + categories.FindOne(selector)); //Find it by _id that has been converted to a string now. var id = (category["_id"]).ToString(); Console.WriteLine("Found by string id converted back to Oid"); Console.WriteLine(categories.FindOne(new Document { { "_id", id.ToOid() } })); //Find(new Document()) is equivalent to FindAll(); //Specifying the cursor in a using block will close it on the server if we decide not //to iterate through the whole thing. using (var all = categories.Find(new Document())) { foreach (var doc in all.Documents) { Console.WriteLine(doc.ToString()); } } mongo.Disconnect(); }
private void button4_Click(object sender, EventArgs e) { //链接字符串 string connectionString = "mongodb://localhost"; //数据库名 string databaseName = "myDatabase"; //集合名 string collectionName = "myCollection"; //定义Mongo服务 Mongo mongo = new Mongo(connectionString); //获取databaseName对应的数据库,不存在则自动创建 MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase; //获取collectionName对应的集合,不存在则自动创建 MongoCollection <Document> mongoCollection = mongoDatabase.GetCollection <Document>(collectionName) as MongoCollection <Document>; //链接数据库 mongo.Connect(); try { //定义一个文档对象,存入两个键值对 Document doc = new Document(); doc["ID"] = 1; doc["Msg"] = "Hello World!"; //将这个文档对象插入集合 mongoCollection.Insert(doc); //在集合中查找键值对为ID=1的文档对象 Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } }); //输出查找到的文档对象中键“Msg”对应的值,并输出 //Console.WriteLine(Convert.ToString(docFind["Msg"])); MessageBox.Show(Convert.ToString(docFind["Msg"])); } finally { //关闭链接 mongo.Disconnect(); } }
/// <summary> /// 获取数据表总行数 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="query"></param> /// <param name="collectionName"></param> /// <returns></returns> public static long GetCount <T>(string collectionName, object query) where T : class { long count = 0; using (Mongo mongo = new Mongo(connectionString)) { mongo.Connect(); IMongoDatabase friends = mongo.GetDatabase(database); IMongoCollection <T> collection = friends.GetCollection <T>(collectionName); if (query == null) { count = collection.Count(); } else { count = collection.Count(query); } mongo.Disconnect(); return(count); } }
public static Document FindOne(string mongoConnsring, string mongoDbName, string mongoCollectionName, object spec) { using (Mongo mongo = new Mongo(mongoConnsring)) { //获取databaseName对应的数据库,不存在则自动创建 MongoDatabase mongoDatabase = mongo.GetDatabase(mongoDbName) as MongoDatabase; //获取collectionName对应的集合,不存在则自动创建 MongoCollection <Document> mongoCollection = mongoDatabase.GetCollection <Document>(mongoCollectionName) as MongoCollection <Document>; //链接数据库 mongo.Connect(); ////在集合中查找键值对为ID=1的文档对象 Document docFind = mongoCollection.FindOne(spec); mongo.Disconnect(); return(docFind); } }
/// 通用数据查询方法 /// <summary> /// 通用数据查询方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collection_name"></param> /// <returns></returns> public List <T> QueryCommonData <T>(string collection_name) where T : class { List <T> list = new List <T>(); using (Mongo mongo = new Mongo(strconn)) { try { mongo.Connect(); MongoDatabase db = mongo.GetDatabase(dbName) as MongoDatabase; list = (from item in db.GetCollection <T>(collection_name).Linq() select item).ToList(); } catch (Exception ex) { Loger.Log4Net.Error("[****MongoDB****][QueryCommonData] 异常", ex); } finally { mongo.Disconnect(); } } return(list); }
public void Close() { factory.Disconnect(); factory.Dispose(); }
public static void Main(string[] args) { var config = new MongoConfigurationBuilder(); // COMMENT OUT FROM HERE config.Mapping(mapping => { mapping.DefaultProfile(profile => { profile.SubClassesAre(t => t.IsSubclassOf(typeof(MyClass))); }); mapping.Map <MyClass>(); mapping.Map <SubClass>(); }); // TO HERE config.ConnectionString("Server=127.0.0.1"); using (Mongo mongo = new Mongo(config.BuildConfiguration())) { mongo.Connect(); try { var db = mongo.GetDatabase("TestDb"); var collection = db.GetCollection <MyClass>(); MyClass square = new MyClass() { Corners = 4, Name = "Square" }; MyClass circle = new MyClass() { Corners = 0, Name = "Circle" }; SubClass sub = new SubClass() { Name = "SubClass", Corners = 6, Ratio = 3.43 }; collection.Save(square); collection.Save(circle); collection.Save(sub); var superclass = (from item in db.GetCollection <MyClass>("MyClass").Linq() where item.Corners > 1 select item.Corners).ToList(); var subclass = (from item in db.GetCollection <SubClass>("MyClass").Linq() where item.Ratio > 1 select item.Corners).ToList(); Console.WriteLine("Count by LINQ on typed collection: {0}", collection.Linq().Count(x => x.Corners > 1)); Console.WriteLine("Count by LINQ on typed collection2: {0}", db.GetCollection <SubClass>().Linq().Count(x => x.Corners > 1)); //Console.WriteLine("Count by LINQ on typed collection3: {0}", db.GetCollection<SubClass>().Count(new { Corners = Op.GreaterThan(1) })); Console.WriteLine("Count on typed collection: {0}", collection.Count(new { Corners = Op.GreaterThan(1) })); var coll = db.GetCollection("MyClass"); var count = coll.Count(new Document("Corners", Op.GreaterThan(1))); Console.WriteLine("Count: {0}", count); Console.ReadKey(); } finally { mongo.Disconnect(); } } //var main = new MainClass(); //main.Setup(); //main.Run(); }
public void TestCleanup() { Mongo.Disconnect(); }