笔者这里采用的是mongoDB官网推荐使用.net驱动:
http://www.easck.com/mongo-csharp-driver/2.0/getting_started/quick_tour/
有关于MongoDB的安装读者可以参考其他的博客,对于基本的学习来说并不需要进行过多的配置。
创建连接
这一步骤跟ADO.NET连接到数据库的步骤是一样的,ADO.NET是利用SqlConnection连接数据库,而MongoDB则使用MongoClient连接,并在构造函数中将连接字符传递进去,当然可以不传递,那么默认就是连接本地的计算机的默认端口(27017),比如下面的三种连接方式:
var client = new MongoClient();
var client1 = new MongoClient("mongodb://localhost:27017");
var client2 = new MongoClient("mongodb://localhost:27017,localhost:27018,localhost:27019");
获取数据库
为了获取数据库,只需要调用MongoClient对象的GetDatabase方法,并传入数据库名称即可,如果数据库存在则直接返回,否则就创建该数据库并返回,比如下面的这段代码将创建名为“foo”的数据库:
var database = client.GetDatabase("foo");
现在database变量就指向了foo数据库了。
获取链表
虽然叫获取链表,但是实际上就是获取数据库中的表,我们可以通过上面database的GetCollection<TDocument>方法获取,比如下面的代码我们将获取一个名为“bar”的表:
var collection = database.GetCollection<BsonDocument>("bar");
我们传入的泛型参数为BsonDocument,这个是自带的,可以动态的容纳各种格式的数据,当然这里还是建议读者使用POCO。
插入一个文档
利用collection对象,我们可以将文档插入其中,比如下面的json格式数据:
{
"name": "MongoDB",
"type": "database",
"count": 1,
"info": {
x: 203,
y: 102
}
}
下面我们利用BsonDocument对象组织上面的JSON格式的数据:
var document = new BsonDocument
{
{"name","MongoDB"},
{"type","Database"},
{"count",1},
{"info",new BsonDocument{
{"x",203},
{"y",102}
}
}
};
然后我们利用collection对象的InsertOneAsync将上面的数据插入其中:
collection.InsertOneAsync(doc);
我们都知道Async为后缀的方法都是支持异步的,但是笔者是在控制台项目中演示的所以没有加上这个await,如果读者实在其他的环境中测试的可以根据情况加上。
插入多个文档
如果需要一次性插入多个文档,我们可以通过InsertManyAsync方法,比如下面的示例我们将插入100条数据:










