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.iyunv.com/dannywj1371/article/details/7440916
3>我用的mongodb.dll 文件
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.iyunv.com/yuluhuang/p/3982989.html
public class MongoDBHelper where T : class
{
string connectionString = string.Empty;
string databaseName = string.Empty;
string collectionName = string.Empty;
static MongoDBHelper 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();//将类型添加到集合中
mapping.Map();
});
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(collectionName);
collection.Insert(t, true);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
public void Update(T t, Expression func)
{
using (Mongo mongo = new Mongo())
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection(collectionName);
collection.Update(t, func, true);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
public List GetList(int pageIndex, int pageSize, int needPageCount, Expression func, out int pageCount)
{
pageCount = 0;
using (Mongo mongo = new Mongo())
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection(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 ListAll(Expression func)
{
using (Mongo mongo = new Mongo())
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection(collectionName);
var list = collection.Linq().Select(i => i).ToList();
mongo.Disconnect();
return list;
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
public T Single(Expression func)
{
using (Mongo mongo = new Mongo())
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection(collectionName);
var single = collection.Linq().FirstOrDefault(func);
mongo.Disconnect();
return single;
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
public void Delete(Expression func)
{
using (Mongo mongo = new Mongo())
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection(databaseName);
//这个地方一定要加上T参数,不然会当成object类型的来处理,导致删除失败。
collection.Remove(func);
mongo.Disconnect();
}
catch (Exception)
{
mongo.Disconnect();
throw;
}
}
}
}