设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] MongoDB与c#(二)简单例子 使用1.7版本驱动

[复制链接]

尚未签到

发表于 2015-7-7 11:57:45 | 显示全部楼层 |阅读模式
   //创建数据库链接
        在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");
//插入一个 实体
for (int i = 0; i < dt.Rows.Count; i++)
{
collection.Insert(new citys
{
province = dt.Rows[0].ToString(),
city = dt.Rows[1].ToString(),
county = dt.Rows[2].ToString(),
areacode = "0" + dt.Rows[3].ToString(),
postalcode = dt.Rows[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("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.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.EQ(e => e.Id, id);
112 var update = Update.Set(e => e.Name, "Harry"); // update modifiers
113 collection.Update(query, update);
114
115 下面的例子使用了 更新< T > 构建器轻松地构建更新 修饰符。
116 删除一个现有的文档
117
118 删除一个现有的文档集合你写:
119
120 var query = Query.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("entities");
154
155             var entity = new Entity { Name = "Tom" };
156             collection.Insert(entity);
157             var id = entity.Id;
158
159             var query = Query.EQ(e => e.Id, id);
160             entity = collection.FindOne(query);
161
162             entity.Name = "Dick";
163             collection.Save(entity);
164
165             var update = Update.Set(e => e.Name, "Harry");
166             collection.Update(query, update);
167
168             collection.Remove(query);
169         }
170     }
171 }

  



  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84093-1-1.html 上篇帖子: mongodb 介绍 下篇帖子: MongoDB学习系列(1)--入门介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表