1> mongodb下载地址:
http://www.mongodb.org/downloads
官方下载不了,可以到百度共享盘里面下载
MongoDB 2.6.5
Windows 64位: http://pan.baidu.com/s/1qW0nCpI
Windows 32位:http://pan.baidu.com/s/1qWmG2NM
Linux 64位: http://pan.baidu.com/s/1CRxzo
转自:http://mongoing.com/mongodb-downloads
2> mongodb c#驱动 下载地址(下载完成后,需自己编译项目,然后用项目编译后生成的DLL文件即可。)
https://github.com/samus/mongodb-csharp
其实是有二种驱动:可以参考 http://blog.csdn.net/dannywj1371/article/details/7440916
3>我用的mongodb.dll 文件
使用过程中可能遇到问题
reason: errno:10061 No connection could be made because the target machine actively refused it.
解决方式:
sc.exe create MongoDB binPath="d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\mongod.cfg" DisplayName="MongoDB 2.6 Standard" start="auto"
http://www.cnblogs.com/yuluhuang/p/3982989.html
public class MongoDBHelper<T> where T : class { string connectionString = string.Empty; string databaseName = string.Empty; string collectionName = string.Empty; static MongoDBHelper<T> mongodb; public MongoDBHelper(string connectionString, string databaseName, string collectionName) { this.collectionName = collectionName; this.connectionString = connectionString; this.databaseName = databaseName; } public MongoConfiguration configuration { get { var config = new MongoConfigurationBuilder(); config.Mapping(mapping => { mapping.DefaultProfile(profile => { profile.SubClassesAre(t => t.IsSubclassOf(typeof(T))); }); mapping.Map<T>();//将类型添加到集合中 mapping.Map<T>(); }); config.ConnectionString(connectionString); return config.BuildConfiguration(); } } public void Insert(T t) { using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(collectionName); collection.Insert(t, true); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } public void Update(T t, Expression<Func<T, bool>> func) { using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(collectionName); collection.Update(t, func, true); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } public List<T> GetList(int pageIndex, int pageSize, int needPageCount, Expression<Func<T, bool>> func, out int pageCount) { pageCount = 0; using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(collectionName); pageCount = Convert.ToInt32(collection.Count() / pageSize); var modelList = collection.Linq().Where(func).Skip(pageSize * (pageIndex - 1)).Take(needPageCount * pageSize).Select(i => i).ToList(); mongo.Disconnect(); return modelList; } catch (Exception) { mongo.Disconnect(); throw; } } } public List<T> ListAll(Expression<Func<T, bool>> func) { using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(collectionName); var list = collection.Linq().Select(i => i).ToList(); mongo.Disconnect(); return list; } catch (Exception) { mongo.Disconnect(); throw; } } } public T Single(Expression<Func<T, bool>> func) { using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(collectionName); var single = collection.Linq().FirstOrDefault(func); mongo.Disconnect(); return single; } catch (Exception) { mongo.Disconnect(); throw; } } } public void Delete(Expression<Func<T, bool>> func) { using (Mongo mongo = new Mongo()) { try { mongo.Connect(); var db = mongo.GetDatabase(databaseName); var collection = db.GetCollection<T>(databaseName); //这个地方一定要加上T参数,不然会当成object类型的来处理,导致删除失败。 collection.Remove<T>(func); mongo.Disconnect(); } catch (Exception) { mongo.Disconnect(); throw; } } } }