1. 去http://www.mongodb.org/downloads#development下载
2. 直接点击安装
3. 使用adiministrator打开命令窗口
4. 运行命令mongod.exe --dbpath=c:/data/db --logpath=c:/mongodb/log/logs.txt --logappend
其中 c:/data/db 是存放数据的目录,c:/mongodb/log/logs.txt是存放日志。--logappend表明日志的方式是追加
5. 下载http://www.mongovue.com/downloads/ 作为client端工具。 基本功能是免费的。
6. 连接数据库的程序
namespace Utility
{
public class MonogoDBHelp
{
public MongoDatabase getMongoDB()
{
string connectionString = "mongodb://localhost:27017";
string databasename = "NJ";
MongoClient client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase(databasename);
return database;
}
}
}
按照手册,mongo driver 会管理连接池,所以可以使用single模式,但是我由于第一次使用,而且同时上线人数有可能过100,所以,暂时没有使用这种模式。直接使用文档建议写了一个help.
7. 插入数据
mongo感觉是面向对象的,因此,尽管他不支持事务,但是,如果从面向对象的概念去考虑,完全可以在对象中包含对象。
在类中增加属性:public ObjectId Id { get; private set; }
单笔插入操作
MonogoDBHelp help = new MonogoDBHelp();
MongoDatabase db = help.getMongoDB();
LogBarCodeInfo log = new LogBarCodeInfo();
log.ProcessId = "test1";
MongoCollection collection = db.GetCollection
collection.Save(log);
插入集合
使用insertbatch
非常不幸,插入集合只能以key,value的形式产生BsonDocument数组才能插入。 因此,可以考虑在MonogoDBHelp增加一个传入IList,然后返回BsonDocument数组的方法。插入的效率非常不错
8. 搜索数据,考虑转换成使用Linq,
代码片段如下:
MonogoDBHelp help = new MonogoDBHelp();
MongoDatabase db = help.getMongoDB();
MongoCollection collection = db.GetCollection
var query = from c in collection.AsQueryable
where c.ModuleId == "JT130363" && c.UserNo.Equals("0995")
select c;
我采用了一个有400多万笔的document, 速度还是非常令人满意的