一、MongoDB的驱动

MongoDB支持多种语言的驱动:

在此我们只介绍 C# 的驱动。仅C#驱动都有很多种,每种驱动的形式大致相同,但是细节各有千秋,因此代码不能通用。比较常用的是官方驱动和samus驱动。samus驱动除了支持一般形式的操作之外,还支持linq方式操纵数据。

个人比较喜欢这种方式 , 所以将从samus驱动入手讲解数据库访问,存取“Hello World!”为例。

官方驱动下载地址:点击下载

二、通过samus驱动实现HelloWorld存取

1、在进行下述操作之前,请先确定MongoDB服务已经开启,不知道怎么开启服务,可以查看我的随笔《MongoDB的介绍与安装》。

2、下载驱动,新建控制台项目,并添加对MongoDB.dll的引用,如果你下载的是驱动源码,编译一遍引用生成的DLL即可。(samus驱动下载地址:点击下载

基本代码如下:

/***************************************************************/

//链接字符串
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"]));
}
finally
{
    //关闭链接
    mongo.Disconnect();
}
/**********************************************************/
 
3、运行程序,成功打印helloword。同时,我们打开data数据文件夹,发现多了两个文件“myDatabase.ns”和“myDatabase.0”。
 
本篇简洁的讲解了基本存取操作,我将在后续结合MVC框架通过MongoDB实现model层单个集合的基本增删查改操作。

通过MongoDB的samus驱动实现基本数据操作的更多相关文章

  1. 通过samus驱动实现基本数据操作

    传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由(database).集合(collection).文档对象(documen ...

  2. MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

    传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由(database).集合(collection).文档对象(documen ...

  3. Mongodb的Samus驱动

    最近开始学习Mongodb方面的东西.. 看到有很多博主都说MongoDB的第三方驱动 Samus 对Linq的支持比较好..能够降低学习的成本..所以就想从这里开始.. 但是弊端在我学习了一半的时候 ...

  4. MongoDB C#samus驱动

    MongoDB的c#驱动有两种,官方驱动和samus驱动,不过我更喜欢samus驱动,因为samus驱动提供了丰富的linq操作. 官方驱动:https://github.com/mongodb/mo ...

  5. MongoDb Samus 驱动的改进

    一直使用 MongoDb 的 Samus C#驱动. 其有一个缺陷,就是无法支持struct的读写. 但是一般数据都用Class包装,所以也没有太在意. 随着这些天尝试写入 KLineData 时,遇 ...

  6. 【转载】8天学通MongoDB——第八天 驱动实践

    作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便. 官方驱动:https://gi ...

  7. Samus驱动中的Document条件

    今天要说一个东西就是Samus驱动里的 Document  和他的一个子类 Op 在Samus驱动的增删改查方法中都有这类的参数传递.. 大致的使用方法是这样.. MongoU.Find<Per ...

  8. 8天学通MongoDB——第八天 驱动实践

    作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便. 官方驱动:https://gi ...

  9. [译] MongoDB Java异步驱动快速指南

    导读 mongodb-java-driver是mongodb的Java驱动项目. 本文是对MongoDB-java-driver官方文档 MongoDB Async Driver Quick Tour ...

随机推荐

  1. 编译原理实习(应用预测分析法LL(1)实现语法分析)

    #include<iostream> #include<fstream> #include<iomanip> #include<cstdio> #inc ...

  2. loj 1271

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26981 思路:题目的意思是求给定的起点到终点的最短路径序列,并且这 ...

  3. hdu 4281(MTSP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4281 题意:给出N个点,第一个点是裁判,其他N-1个点需要裁判过去回答问题,每个点需要的时间不一样,而 ...

  4. Android自动化压力测试之Monkey Test 异常解读(五)

    monkey结果分类 monkey结果详细解读 monkey运行log输出后,得读懂日志内容,定位错误 lgo日志顺序输出分别为  测试命令信息.随机事件流(11种事件).异常信息(anr.crash ...

  5. 使用lsof查看进程句柄使用情况

    lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more

  6. Http协议提要

    HTTP协议提要 简单来说,HTTP就是一个基于应用层的通信规范:双方要进行通信,大家就要遵守一个规范---HTTP协议.HTTP协议从WWW服务器超文本到本地浏览器 ,可以使浏览器更加高效.HTTP ...

  7. 手机页面的meta标签

    <meta charset="utf-8"/><meta name="viewport" content="width=device ...

  8. hdu3496 二维01背包

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3496 //刚看题目以为是简单的二维01背包,but,,有WA点.. 思路:题中说,只能买M ...

  9. 2016.8.27 JavaScript入门之四

    1.比较运算符“>”也可以,用数字和字符串进行比较: 2.比较运算符“&&”,表示并且: 3.比较运算符“||”,表示或者: 4.顺序是重要的,循环和if判断的顺序决定了,程序的 ...

  10. Codeforces Round #355 (Div. 2)-C

    C. Vanya and Label 题目链接:http://codeforces.com/contest/677/problem/C While walking down the street Va ...