首页 > 代码库 > c#开发Mongo笔记第七篇

c#开发Mongo笔记第七篇

开发到这里遇到了一些问题,哪到这里想请教一下大家

今天我完成的是菜单功能,

 public   class Menu    {        public ObjectId _id { get; set; }        public int MenuId { get; set; }        public string Name { get; set; }        public int ParentId { get; set; }        public string  Url { get; set; }        public string Icon { get; set; }        public int OrderNo { get; set; }        public string Descr { get; set; }         }

首先是按照最常规的方式采用内键的方式完成的菜单。当我完成的时候突然想到既然Monogo结构这么松散,我为什么不把子菜单当成一个字段存进去呢,于是增加了一个字段

  public List<Menu> Child = new List<Menu>();

存储到数据库的结构式这样的,

本以为一切顺利,但是却发现连最基本的插入子菜单的功能都实现不了了。

我添加菜单时通常都是先添加父级菜单,然后再给父菜单添加子菜单,那么就相当于去修改这么文档的child属性,

然后我用修改方法去写

                   parent.Child.Add(menu);                    var queryid = Query.And(Query.EQ("MenuId", pid));                                     var update = Update.Set("Child",menu);                             DAL.DALMenu.Update(queryid, update);

那么问题来了,update.set()这个函数的第二个参数是bsonvalue类型的,我无法把一个集合当成参数放进去,这个更新方法还必须指定一个要修改的字段,然后我就突然不知道怎么修改了。

然后我就开始百度(自从谷歌突出中国以后我就开始百度了),结果能找到的都是基本的增删改查,哎,相当无助啊,

希望有知道怎么做的能不吝赐教啊,万分感激啊

c#开发Mongo笔记第七篇