Fossil Jue & Young Mu @Shanghai
目前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()
如果你还不知道怎么启动服务程序,或者不会使用客户端的话,可以看这篇日志。

像不像狮子的侧脸?

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

拼了一张全景~

海的温柔

如果有蓝天就更好了~

















喜欢的椅子

正面望出去


船屋全景 没有拍好























