• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#开发Mongo笔记第五篇

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

现在增删查改算是都完成了,但是查询算是有点不完美的,相信现在用juqeryeasyui这一类的插件的人应该也不少吧,这样的话前台展示需要JSON格式的数据,

好在mogno驱动提供toJson()的函数,但是却无法在前台显示,不知道是不是objectid导致的,下面是我通过firebug看到的请求数据。

{"total":"2","rows":[{ "_id" : ObjectId("545c395937d9dc8a18f0c51a"), "UserName" : "admin", "Password" : "81DC9BDB52D04DC20036DBD8313ED055", "CustomID" : CSUUID("21410650-4219-46eb-baac-3a207a570225") }, { "_id" : ObjectId("545c66438ef275179cd6b02b"), "UserName" : "tester", "Password" : "E10ADC3949BA59ABBE56E057F20F883E", "CustomID" : CSUUID("deb396b4-e90b-449a-86b2-957bc0fc7f06") }]}



{"total":"2","rows":[{"_id":"545c395937d9dc8a18f0c51a","UserName":"admin","CustomID":"21410650-4219-46eb-baac-3a207a570225"},{"_id":"545c66438ef275179cd6b02b","UserName":"tester","CustomID":"deb396b4-e90b-449a-86b2-957bc0fc7f06"}]}

上边是toJson()函数生成的,不知道怎么能去掉objectid这样不和谐的东西,希望知道的大牛不吝赐教。

然后说话我的查询方法吧,我首先返回一个collection

  public static MongoCollection GetCollection()
        {
            MongoDatabase db = MongoHelper.GetConnection();
            return db.GetCollection<User>("User");
        }

然后先把这个collection转成List集合再进行分页和查询操作

 

   MongoCollection collection = DAL.DALUser.GetCollection();
            var list=  collection.FindAllAs<User>();
            List<User> users = list.ToList();
            if (Request.QueryString["condition"] != null)
            {
                searchstr = Request.QueryString["condition"];
                users = list.Where(u=>u.UserName.Contains(searchstr)).ToList();
            }

本想这样直接变成json的

       // return Content("{\"total\":\""+list.Count()+"\",\"rows\":"+ users.Take(TakeNum).Skip(TakeNum*SkipNum).ToJson().ToString()+"}");

但是不可以,目前只好先自己拼json了。

然后说说更新吧,查询我也是先写了一个更新方法

   public static void Update(IMongoQuery query,IMongoUpdate  update)
        {
            MongoDatabase db = MongoHelper.GetConnection();
            MongoCollection collection = db.GetCollection<User>("User");
            collection.Update(query, update);
        }

通过传参的方式进行修改,我觉得这样还是相对灵活的,然后调用方法如下

                    var query = Query.And(Query.EQ("_id", user._id));
                    var update = Update.Set("Password", user.Password);
                    DALUser.Update(query, update);

然后业务逻辑层去指定查询方法和具体需要修改的字段。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap