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
首先要做的是如图一所示的操作页面。
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
相关文章推荐
- MongoDB学习之树结构例子(使用NORM驱动)
- MongoDB学习之树结构例子(使用NORM驱动)
- MongoDB学习之树结构例子(使用NORM驱动)
- MongoDB学习之树结构例子(使用NORM驱动)
- 使用MongoDB的支持Linq 驱动NoRM
- 使用MongoDB的支持Linq 驱动NoRM
- 从零开始学习Node.js例子八 使用SQLite3和MongoDB
- MongoDB学习笔记【4】-- MongoDB Java驱动使用
- MongoDB与c#(二)简单例子 使用1.7版本驱动
- C#中使用1.7版本驱动操作MongoDB简单例子
- node.js学习笔记(4)_极客学院_MongoDB的使用
- Android中图表AChartEngine学习使用与例子
- (学习笔记)Android使用SurfaceView编写“迷宫搜索”例子
- NT驱动使用设备扩展的例子
- Python Web框架Pylons中使用MongoDB的例子
- [bxd学习java基本点]9.ArrayList存对象例子,其除重复及删除,要使用地址,而不是eqauls
- 学习MongoDB--(6-2):聚合(MapReduce使用)
- spring-data-mongodb的MongoTemplate 使用小例子
- MongoDB学习2——Windows 使用mongo连接数据库
- MongoDB学习笔记之MapReduce使用示例