18

三月

2010

在.net中使用MongoDB[一]插入数据

Author: 化石 | Categories:编程|

目前mongodb官方还不提供.net驱动,我原来想,是不是就只能通过C++/CLI来访问了。所幸.net社区还是比较活跃的,有很多“山寨”的.net驱动。在官方网站上找到一个叫mongodb-csharp的项目,应该是比较靠谱的。

下载MongoDBDriver-Debug_2010-03-01.zip,解压缩,里面包含3个程序集:

MongoDB.Driver.dll
MongoDB.GridFS.dll
MongoDB.Linq.dll

通过第一个程序集就可以访问数据库,做简单的SUID操作了。Mongodb-csharp使用起来倒也简单,代码非常简洁。让我们看看插入数据的代码:

using MongoDB.Driver;

Mongo mongo = new Mongo();
mongo.Connect(); // 连接服务器

Database db = mongo.getDB(”org”); // 获取数据库

IMongoCollection collection = db.GetCollection(”user”); // 获取集合
Document doc = new Document();
doc["name"] = “fossil”;
doc["age"] = 25;
doc["blog"] = null;
doc["birthday"] = DateTime.Today;
collection.Insert(doc); // 插入文档

db.Logout();

mongo.Disconnect();

MongoDB非常接近RDMBS,很多概念都能在关系型数据库中找到对应。比如都有服务器和数据库的概念,集合对应表,文档对应记录。上面的代码中,我们尝试保存字符串,数字,null和时间类型的值,都很方便。

MongoDB中的文档其实就是一些键值对的集合。每个文档都有一个”_id”键,其值的类型是ObjectId,对应mongodb-csharp中的MongoDB.Driver.Oid类型。在插入时可以指定_id的值,如果不指定的话,在插入成功后,doc对象会被自动添加一个key为”_id”的键值对。可以考虑将这个key作为自动编号的”主键”来用。

MongoDB.Driver.Oid对象转换成字符串的时候有点奇怪,如果调用oid.ToString()方法的话,会发现返回的是被两个引号引起来的一串数字。不知道这个类库的作者是怎么想的,反正我是不需要这两个引号。用下面的方法来获取不带引号的字符串:BitConverter.ToString(oid.Value).Replace(”-”, “”).ToLower();

IMongoCollection.Insert方法有四个重载,也可以传入Ienumerable类型,一次保存多个文档。

说了这么多,还是运行一下看看效果吧:

1. 启动MongoDB

2. 编译执行

3. 在客户端Shell中查询看数据是否已经插入成功。输入:

use org
db.user.findAll()

如果你还不知道怎么启动服务程序,或者不会使用客户端的话,可以看这篇日志

15

三月

2010

厦门[二/三] 到海边啦

Author: 禾白 | Categories:活着, 爱着|

xiamen-0220

像不像狮子的侧脸?
xiamen-0221

我觉得很有意境的一张,不过海水不够蓝。
xiamen-0222

拼了一张全景~
xiamen-0223

海的温柔
xiamen-0224

如果有蓝天就更好了~
xiamen-0225

14

三月

2010

厦门[二/二] 鼓浪屿走街串巷

Author: 禾白 | Categories:活着, 爱着|

xiamen-0205
xiamen-0206
xiamen-0207
xiamen-0208
xiamen-0209
xiamen-0210
xiamen-0211
xiamen-0212
xiamen-0213
xiamen-0214
xiamen-0215
xiamen-0216
xiamen-0217
xiamen-0218
xiamen-0219

14

三月

2010

厦门[二/一] 船屋

Author: 禾白 | Categories:活着, 爱着|

喜欢的椅子

正面望出去

船屋全景 没有拍好
IMG_7417

14

三月

2010

温暖人心的Kumiya Mashita

Author: 禾白 | Categories:视觉|



4

三月

2010

中国制造之软件

Author: 禾白 | Categories:创意, 好玩|

softwares made in china

3

三月

2010

厦门[一] 我们来了

Author: 禾白 | Categories:活着, 爱着|

ximen-0101
ximen-0102
ximen-0103
ximen-0104
ximen-0105
ximen-0106
ximen-0107
ximen-0108
ximen-0109
ximen-0111
ximen-0112
ximen-0113
ximen-0114
ximen-0115
ximen-0116
ximen-0118
ximen-0119
ximen-0120
ximen-0121
ximen-0122
ximen-0123
ximen-0124
ximen-0125


Bloggers

  • Fossil Jue

    Fossil Jue | 化石 Fossil Jue's Feed

    Programmer

  • Young Mu

    Young Mu | 禾白 Fossil Jue's Feed

    Web/Interaction Designer

douban.fm

RSS

    google reader
    my yahoo
    鲜果
    哪吒
    九点