//创建数据库链接        在1.7的版本驱动中这样写是会报 MongoServer方法已过时的            //MongoServer server =  MongoDB.Driver.MongoServer.Create(strconn);  

       //带有用户名,密码的如下写法,不带的则直接ip+端口就可以const string connectionString = "mongodb://city:liyang@192.168.1.211:27017";//得到一个客户端对象的引用                    GetServer()对服务器对象的引用           var Server = new MongoClient(connectionString).GetServer();//到一个数据库对象的引用 var client = Server.GetDatabase("City");//对一组对象的引用var collection = client.GetCollection<citys>("citys");//插入一个 实体 for (int i = 0; i < dt.Rows.Count; i++){collection.Insert(new citys{province = dt.Rows[i][0].ToString(),city = dt.Rows[i][1].ToString(),county = dt.Rows[i][2].ToString(),areacode = "0" + dt.Rows[i][3].ToString(),postalcode = dt.Rows[i][3].ToString()});}

以下是git上的帮助文档  地址是:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/
  1 将一个引用添加到c#司机dll
  2
  3 右键单击 引用 文件夹在Visual Studio的解决方案 探险家和选择 添加 参考…… 。 导航到文件夹 c#驱动程序dll被安装并添加一个引用以下 dll:
  4
  5     MongoDB.Bson.dll
  6     MongoDB.Driver.dll
  7
  8 作为一种替代方法可以使用 NuGet 包管理器添加c# 驱动程序包来您的解决方案。
  9 添加所需的 使用 语句
 10
 11 作为一个最低需要使用语句如下:
 12
 13 using MongoDB.Bson;
 14 using MongoDB.Driver;
 15
 16 此外,您会经常添加一个或多个使用 声明:
 17
 18 using MongoDB.Driver.Builders;
 19 using MongoDB.Driver.GridFS;
 20 using MongoDB.Driver.Linq;
 21
 22 还有其他名称空间,只会在特殊的需要 用例。
 23 得到一个客户端对象的引用
 24
 25 最简单的方法获得一个客户对象的引用是使用 连接字符串:
 26
 27 var connectionString = "mongodb://localhost";
 28 var client = new MongoClient(connectionString);
 29
 30 如果你想将客户端对象存储在一个全局变量。 MongoClient 是线程安全的。
 31 对服务器对象的引用
 32
 33 要从客户端到服务器对象的引用对象,写 这样的:
 34
 35 var server = client.GetServer();
 36
 37 到一个数据库对象的引用
 38
 39 去到一个数据库对象的引用从服务器对象,写 这样的:
 40
 41 var database = server.GetDatabase("test"); // "test" is the name of the database
 42
 43 如果您使用多个数据库,调用 GetDatabase 再次为每个 您想要使用数据库。
 44 BsonDocument 对象模型与您自己的域类
 45
 46 有两种方法可以处理集合:
 47
 48     使用 BsonDocument 对象模型
 49     使用自己的域类
 50
 51 您将使用 BsonDocument 当数据对象模型 工作是如此的自由形式,它将是困难的或不可能的 定义的域类。
 52
 53 因为它是如此容易使用自己的域类 快速启动将假设你要这样做。 c#驱动程序 提供,他们可以处理您的域类:
 54
 55     有一个无参数的构造函数
 56     定义公共读/写数据的字段或属性 存储在数据库中
 57
 58 这些需求在本质上是相同的。net的实施 XmlSerializer。
 59
 60 此外,如果您的域类将被用作根 文档必须包含一个 ID 字段或属性(通常是命名 ID 尽管你可以覆盖,如果必要)。 通常情况下, ID 将类型的 ObjectId ,但没有限制的类型 的成员。
 61
 62 考虑下面的类定义:
 63
 64 public class Entity
 65 {
 66     public ObjectId Id { get; set; }
 67
 68     public string Name { get; set; }
 69 }
 70
 71 对一组对象的引用
 72
 73 你会得到一个包含引用集合 实体 文件是这样的:
 74
 75 // "entities" is the name of the collection
 76 var collection = database.GetCollection<Entity>("entities");
 77
 78 插入文档
 79
 80 插入一个 实体 :
 81
 82 var entity = new Entity { Name = "Tom" };
 83 collection.Insert(entity);
 84 var id = entity.Id; // Insert will set the Id if necessary (as it was in this example)
 85
 86 找到一个现有的文档
 87
 88 在这个示例中,我们将读回 实体 假设我们知道 ID 值:
 89
 90 var query = Query<Entity>.EQ(e => e.Id, id);
 91 var entity = collection.FindOne(query);
 92
 93 查询<单位> .EQ 使用 查询< T > 构建器类来构建 查询。 lambda表达式 E = > e.Id 是翻译 _ID 。 这是 字段的名称存储在数据库中。
 94
 95 请注意
 96
 97 通常的名称字段在数据库中是完全相同的 正如它的名字域类中的字段或属性,但是 ID 是一个例外,映射到吗 _ID 在数据库中。
 98
 99 其他查询操作符包括: GT , 一种 , 在 , LT , LTE , 附近 , 东北 , 和 , 或 (和其他一些更多 专业的)。
100 保存一个文档
101
102 你可以保存更改现有的文档如下:
103
104 entity.Name = "Dick";
105 collection.Save(entity);
106
107 更新现有的文档
108
109 另一种选择 保存 是 更新 。 所不同的是, 保存 将整个文档发送回服务器,但是 更新 发的变化。 例如:
110
111 var query = Query<Entity>.EQ(e => e.Id, id);
112 var update = Update<Entity>.Set(e => e.Name, "Harry"); // update modifiers
113 collection.Update(query, update);
114
115 下面的例子使用了 更新< T > 构建器轻松地构建更新 修饰符。
116 删除一个现有的文档
117
118 删除一个现有的文档集合你写:
119
120 var query = Query<Entity>.EQ(e => e.Id, id);
121 collection.Remove(query);
122
123 你不需要调用连接或断开连接
124
125 c#司机有一个连接池使用连接到服务器 效率。 不需要电话 连接 或 断开 ; 让司机照顾连接(调用 连接 是无害的,但是打电话呢 断开 是不好的,因为它关闭 连接池中的连接)。
126 完整的示例程序
127
128 using System;
129 using System.Collections.Generic;
130 using System.Linq;
131 using System.Text;
132
133 using MongoDB.Bson;
134 using MongoDB.Driver;
135 using MongoDB.Driver.Builders;
136
137 namespace ConsoleApplication1
138 {
139     public class Entity
140     {
141         public ObjectId Id { get; set; }
142         public string Name { get; set; }
143     }
144
145     class Program
146     {
147         static void Main(string[] args)
148         {
149             var connectionString = "mongodb://localhost";
150             var client = new MongoClient(connectionString);
151             var server = client.GetServer();
152             var database = server.GetDatabase("test");
153             var collection = database.GetCollection<Entity>("entities");
154
155             var entity = new Entity { Name = "Tom" };
156             collection.Insert(entity);
157             var id = entity.Id;
158
159             var query = Query<Entity>.EQ(e => e.Id, id);
160             entity = collection.FindOne(query);
161
162             entity.Name = "Dick";
163             collection.Save(entity);
164
165             var update = Update<Entity>.Set(e => e.Name, "Harry");
166             collection.Update(query, update);
167
168             collection.Remove(query);
169         }
170     }
171 }


转载于:https://www.cnblogs.com/liyangLife/p/4201411.html

MongoDB与c#(二)简单例子 使用1.7版本驱动相关推荐

  1. java 国际化例子_JavaSE 国际化 简单例子

    ①在src下添加两个文件: base_zh_CN.properties Test=\u8fd9\u662f\u4e2d\u6587 base_en_US.properties Test=english ...

  2. jar包的生成和使用简单例子

    一, 什么是jar包 java中, 源代码文件是*.java,   编译后就生成若干class文件.     这些class文件可以被各平台的jvm虚拟机执行. java还提供1个工具, 可以将这些c ...

  3. CentOS 6 安装Hadoop 2.6 (四)运行简单例子

    CentOS 6 安装Hadoop 2.6 (一)准备工作 CentOS 6 安装Hadoop 2.6 (二)配置Hadoop CentOS 6 安装Hadoop 2.6 (三)问题收集 CentOS ...

  4. rest_framework11:jwt简单例子/自定制基于jwt认证类

    jwt简单例子 一.登陆设置 1.不需要写login的视图类,使用jwt内置的. 2.需要前置条件,已有继承AbstractUser models,并且有数据,用于校验,返回token. urls.p ...

  5. C++头文件<functional>和bind、placeholders占位符使用简单例子

    相关博文:C++新特性探究(十五):bind 相关博文:C++头文件<functional>和bind.placeholders占位符使用简单例子 相关博文:<Essential C ...

  6. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  7. [转载]c#委托事件简单例子

    c#委托事件简单例子 2009-05-11 10:57 一.委托委托类似于函数指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法. 委托使用分三步:1.委托声明.2.委托实例化 ...

  8. 组合恒等式1 五个基本的组合恒等式 基础与简单例子

    组合恒等式1 五个基本的组合恒等式 基础与简单例子 四个基本的组合恒等式 应用四个基本恒等式计算组合恒等式的例题 应用四个基本恒等式证明组合恒等式的例题 组合恒等式是组合学中一个非常有趣但也十分具有挑 ...

  9. VC API常用函数简单例子大全(1-89)

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...

最新文章

  1. 嵌入式工程师必读100本专业书籍
  2. Spring boot其他框架日志
  3. VTK:IO之ReadPNM
  4. dedecms /plus/feedback.php SQL Injection Vul
  5. Organization Unit buffer - OOATTRCUST
  6. 华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???
  7. c mysql bulk,MySqlBulkLoader批量上传遇到的问题和解决方法
  8. 容器编排技术 -- Windows Server 容器
  9. 能给别人吗_《奇葩说》观点引热议:一种能看透别人心思的能力,你敢要吗?...
  10. 在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例
  11. 『动态规划』矩阵连乘
  12. .NetCore对接各大财务软件凭证API——金蝶系列(2)
  13. mac查看内存使用情况命令
  14. 软硬件全开源,航芯方案分享 | 热敏打印机方案
  15. 第八届中国大学计算机设计大赛,2015年(第八届)中国大学生计算机设计大赛.PDF...
  16. 湖南计算机前十大学,湖南计算机专业学校排名
  17. Jenkins Gitlab 插件及 Gitlab 全局变量
  18. 黄帝81难经1-10难
  19. 微博股价一日暴涨25%的秘密:我不仅是Twitter,我还要做YouTube
  20. Exception iterating responses: unhashable type: ‘list‘

热门文章

  1. linux 修改系统时区和时间
  2. 存在即合理的原文 黑格尔
  3. 如何启用ruler?
  4. 苹果如果无法弹出⏏️
  5. partial in latex
  6. Flutter 填坑之 表单数据哪里去了?
  7. Office 365:如何管理Office 365中的Ophaned Mailbox
  8. Java简单知识梳理
  9. redis 基础操作学习
  10. Sql Server 查看所有存储过程或视图的位置及内容