您的位置:首页 > 数据库 > Mongodb

MongoDB学习之树结构例子(使用NORM驱动)

2010-08-28 02:48 453 查看
近期NoSql数据库比较火,于是本着与时俱进的态度,开始对MongoDB进行学习。学习的最好方法就是动手做做实例,于是选择了经常使用到的树结构作为入门例子。本例子将根据《Tree in MongoDB》推荐的全路径方法构建树结构。

首先要做的是如图一所示的操作页面。

private string Edit(HttpContext context)
{
string output = "";
string id = context.Request.Params["id"] ?? "";
string title = context.Request.Params["value"] ?? "";
if (title.Length > 0)
{
if (id.Length > 0)
{
using (var mongo = Mongo.Create("mongodb://192.168.0.77/Trees"))
{
var nodes = mongo.GetCollection<Node>("Node");
Node q = nodes.FindOne(new { _id = new ObjectId(id) });
if (q != null)
{
q.title = title;
nodes.Save(q);
output = (new JObject
{
new JProperty("success",true),
new JProperty("data",id)
}).ToString();
}
else
{
output = (new JObject
{
new JProperty("success",false),
new JProperty("data","要修改的节点不存在或已被删除!")
}).ToString();
}
}
}
else
{
output = (new JObject
{
new JProperty("success",false),
new JProperty("data","要修改的节点不存在或已被删除!")
}).ToString();
}
}
else
{
output = (new JObject
{
new JProperty("success",false),
new JProperty("data","请输入节点名称!")
}).ToString();
}
return output;
}[/code]
代码中首先要判断提交过来的节点名称是否为空,如果不为空则继续判断提交的节点id是否正确,接着需要通过 FindOne方法搜索节点,修改title属性后,通过save方法保存即可完成操作。

例子已经完成了,从例子中可以看到,使用NORM操作MongoDB相当方便,代码很简洁。

通过例子可以看到,使用全路径的方法,在MongoDB中创建一个无级树是相当的方便,因为路径不受数据库字段长度的限制,不过如果考虑MongoDB的存储大小的话,估计也是一个问题,不过这个有待测试。这也是NoSql数据库的一个优势吧。

源代码下载地址:http://download.csdn.net/source/2652662
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: